2014-02-10 67 views
0

一個非常簡單的問題情況下的替代品:迭代,以獲得在python

word = 'toy' 

我要生成以下:

word_altered_cases = ['toy', 'Toy', 'tOy', 'toY', 'TOy', 'tOY', 'ToY', 'TOY'] 

我走到這一步:

for char in word: 
    word.replace(char, char.upper()) 

但很明顯,它會產生無法比擬的排列,並將取代字中出現的所有字符。

+0

http://stackoverflow.com/questions/6792803/finding-all-possible-case-permutations-in-python http://stackoverflow.com/questions/11144389/蟒串與 - 大寫和 - 小寫組合 –

回答

4

使用itertools.product

>>> import itertools 
>>> word = 'toy' 
>>> [''.join(w) for w in itertools.product(*zip(word.lower(), word.upper()))] 
['toy', 'toY', 'tOy', 'tOY', 'Toy', 'ToY', 'TOy', 'TOY']