code: def _get_casing_permutations(cls, 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
docs: 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