一个单词的所有可能组合 - Python

Fac*_*ndo 1 python random combinations dictionary words

我正在制作一个程序,您可以在其中插入一些字母,然后输出是这些字母的所有可能组合。

例如:如果输入是“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[]
Run Code Online (Sandbox Code Playgroud)

显然,有一些错误并且不完整。你能帮我完成或告诉我应该走哪条路吗?谢谢阅读

Mar*_*cny 6

如果您不在乎顺序,那么您正在寻找组合。您可以itertools.combination为此使用:

import itertools

items = 'ABC'
for i in range(len(items)+1):
    for combination in itertools.combinations('ABC', i): 
        print(combination)
Run Code Online (Sandbox Code Playgroud)

列表理解版本:

[combination for i in range(len(items)+1) for combination in itertools.combinations('ABC', i)]
Run Code Online (Sandbox Code Playgroud)