在我的程序中,用户将输入字母(最大值为5),程序将从这些字母生成所有可能的单词。例如,用户将输入" a b c"。单词将是" abc"," acb" ," bac"," bca"," cab"和" cba"。
我该怎么办?我找不到算法。谢谢你的帮助。
感谢大家的帮助。我是初学者。我已经学习了排列函数new :))
答案 0 :(得分:7)
import itertools
In [146]: list(itertools.permutations('abc'))
Out[146]:
[('a', 'b', 'c'),
('a', 'c', 'b'),
('b', 'a', 'c'),
('b', 'c', 'a'),
('c', 'a', 'b'),
('c', 'b', 'a')]
In [147]: [''.join(p) for p in itertools.permutations('abc')]
Out[147]: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
答案 1 :(得分:3)
>>> import itertools
>>> for word in itertools.permutations("abc"):
... print word, ''.join(word)
...
('a', 'b', 'c') abc
('a', 'c', 'b') acb
('b', 'a', 'c') bac
('b', 'c', 'a') bca
('c', 'a', 'b') cab
('c', 'b', 'a') cba