我正在编写一个程序,在其中插入一些字母,然后输出是该字母的所有可能组合。

例如:如果输入为“ 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)]

09-25 20:33