我必须读入一个单词,然后创建一个数组,将这个单词的大小写字符的每个变体存储在一个数组中。例如单词“abc”。我需要找到一种方法来检索“abc”的每个大写和小写版本(abc、Abc、ABc、ABC、AbC、abC 和 aBC)。该字符串还可能包含应单独保留的数字。
我知道我必须在这里使用递归来获得每一个变化,但我不太确定如何,或者是否有任何 python 库提供这种操作。
非常感谢任何帮助或提示!
请您参考如下方法:
from itertools import product
def randString(istr):
l = [(c, c.upper()) if not c.isdigit() else (c,) for c in istr.lower()]
return ["".join(item) for item in product(*l)]
print randString("aBC1")
print randString("A1b2c3")
输出
['abc1', 'abC1', 'aBc1', 'aBC1', 'Abc1', 'AbC1', 'ABc1', 'ABC1']
['a1b2c3', 'a1b2C3', 'a1B2c3', 'a1B2C3', 'A1b2c3', 'A1b2C3', 'A1B2c3', 'A1B2C3']
