我必须读一个单词,然后创建一个数组,该数组在数组中存储此单词的大小写字符的每个变体。例如,单词“ 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']

关于python - Python中的字符串操作(单词的所有大小写派生词),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20063721/

10-12 07:04