Necesito elaborar una lista de todas las posibles permutaciones del caso solo en python, por ejemplo, con la entrada de ar devolvería [‘ar’, ‘Ar’, ‘aR’, ‘AR’]
o arc [‘arc’, ‘Arc’, ‘ARc’, ‘aRc’, ‘aRC’, ‘ARC’] y sé que probablemente exista algún método agradable, pero por mi vida no puedo entenderlo.
def all_casings(input_string): if not input_string: yield "" else: first = input_string[:1] if first.lower() == first.upper(): for sub_casing in all_casings(input_string[1:]): yield first + sub_casing else: for sub_casing in all_casings(input_string[1:]): yield first.lower() + sub_casing yield first.upper() + sub_casing
>>> [x for x in all_casings("foo")] ['foo', 'Foo', 'fOo', 'FOo', 'foO', 'FoO', 'fOO', 'FOO'] >>> list(all_casings("foo")) ['foo', 'Foo', 'fOo', 'FOo', 'foO', 'FoO', 'fOO', 'FOO']