我想做的是创建每个单独的组合,但只能使用每个字母之一
我用3组字母做到了
inlist = ["Aa", "Bb", "Cc"]
outlist = []
for i in inlist[0]:
for j in inlist[1]:
for k in inlist[2]:
outlist.append(str(i + j + k))
输出: 名单= ['ABC','ABc','AbC','Abc','aBC','aBc','abC','abc']
如果我要用2或4组字母怎么办?有没有更简单的方法?
答案 0 :(得分:1)
itertools.product
正是这样做的:
from itertools import product
inlist = ["Aa", "Bb", "Cc"]
outlist = []
for abc in product(*inlist):
outlist.append(''.join(abc))
print(outlist)
# ['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']
abc
是从('A', 'B', 'C')
到('a', 'b', 'c')
的元组。剩下的唯一内容是join
,它返回到带有''.join(abc)
的字符串。
答案 1 :(得分:0)
>>> import itertools
>>> inlist = ["Aa", "Bb", "Cc"]
>>> [''.join(i) for i in itertools.product(*inlist)]
['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']