我正在编写一个程序,在其中插入一些字母,然后输出是该字母的所有可能组合。
例如:如果输入为“ ABC”,则输出应为“ A”,“ B”,“ C”,“ AB”,“ AC”,“ BC”,“ ABC”,“ ACB”等。 。
最后,我的想法是将所有这些组合放在一个集合中,以便可以与包含特定英语单词词典的另一个集合相交,该字典是理想输出的交集
到目前为止,我的脚本是这样的:
import random
p = list(raw_input('Insert some letters: '))
p2 = []
p3 = []
for j in range((len(p))):
p2.append(p[j])
for i in range(len(p)):
a = random.sample(p2,len(p))
p3.append(str("".join(a)))
print p3[]
显然,有一些错误,并且不完整。您可以帮助我完成或告诉我应该走哪条路吗?谢谢阅读
最佳答案
如果您不关心订单,那么您正在寻找一种组合。您可以为此使用itertools.combination
:
import itertools
items = 'ABC'
for i in range(len(items)+1):
for combination in itertools.combinations('ABC', i):
print(combination)
列表理解版本:
[combination for i in range(len(items)+1) for combination in itertools.combinations('ABC', i)]