@classmethod
def _get_casing_permutations(cls, input_string):
    """ Takes a string and gives all possible permutations of casing for comparative purposes

        :param input_string: str, name of object
        :return: Generator(str), iterator of all possible permutations of casing for the input_string
        """
    if not input_string:
        yield ''
    else:
        first = input_string[:1]
        for sub_casing in cls._get_casing_permutations(input_string[1:]):
            yield first.lower() + sub_casing
            yield first.upper() + sub_casing
