code: def get_string_camel_patterns(cls, name, min_length=0):
          
          # Have to check for longest first and remove duplicates
          patterns = []
          abbreviations = list(set(cls._get_abbreviations(name, output_length=min_length)))
          abbreviations.sort(key=len, reverse=True)
  
          for abbr in abbreviations:
              # We won't check for abbreviations that are stupid eg something with apparent camel casing within
              # the word itself like LeF, sorting from:
              # http://stackoverflow.com/questions/13954841/python-sort-upper-case-and-lower-case
              casing_permutations = list(set(cls._get_casing_permutations(abbr)))
              casing_permutations.sort(key=lambda v: (v.upper(), v[0].islower(), len(v)))
              permutations = [permutation for permutation in casing_permutations if
                              cls.is_valid_camel(permutation) or len(permutation) <= 2]
              if permutations:
                  patterns.append(permutations)
  
          return patterns
docs: Finds all permutations of possible camel casing of the given name
  
          :param name: str, the name we need to get all possible permutations and abbreviations for
          :param min_length: int, minimum length we want for abbreviations
          :return: list(list(str)), list casing permutations of list of abbreviations