#!/usr/bin/env python

"""
Write an efficient function that checks whether 
any permutation of an input string is a palindrome.
"""

def has_palindrome_permutation(the_string):
    unpaired_characters = set()

    for char in the_string:
        if char in unpaired_characters:
            unpaired_characters.remove(char)
        else:
            unpaired_characters.add(char)

    return len(unpaired_characters) <= 1

str1 = "civic"
print has_palindrome_permutation(str1)
print "Should be True"

str2 = "ivilc"
print has_palindrome_permutation(str2)
print "Should be False"