只是在Python中查找一個腳本,它接收一些字符串並返回由原始字符串中所有可能的字符組合組成的所有可能的字符串...python:在字符串中隨機播放字符以獲取所有可能的字符串組合
我發現腳本,隨機混合字符串中的字符的,但他們只返回一個randome組合,和我正在尋找的是所有可能的組合...
說,例如:
script.py "abc"
abc
acb
bac
bca
cab
cba
謝謝!
只是在Python中查找一個腳本,它接收一些字符串並返回由原始字符串中所有可能的字符組合組成的所有可能的字符串...python:在字符串中隨機播放字符以獲取所有可能的字符串組合
我發現腳本,隨機混合字符串中的字符的,但他們只返回一個randome組合,和我正在尋找的是所有可能的組合...
說,例如:
script.py "abc"
abc
acb
bac
bca
cab
cba
謝謝!
>>> import itertools
>>> import pprint
>>> pprint.pprint(list(itertools.permutations("spam")))
[('s', 'p', 'a', 'm'),
('s', 'p', 'm', 'a'),
('s', 'a', 'p', 'm'),
('s', 'a', 'm', 'p'),
('s', 'm', 'p', 'a'),
('s', 'm', 'a', 'p'),
('p', 's', 'a', 'm'),
('p', 's', 'm', 'a'),
('p', 'a', 's', 'm'),
('p', 'a', 'm', 's'),
('p', 'm', 's', 'a'),
('p', 'm', 'a', 's'),
('a', 's', 'p', 'm'),
('a', 's', 'm', 'p'),
('a', 'p', 's', 'm'),
('a', 'p', 'm', 's'),
('a', 'm', 's', 'p'),
('a', 'm', 'p', 's'),
('m', 's', 'p', 'a'),
('m', 's', 'a', 'p'),
('m', 'p', 's', 'a'),
('m', 'p', 'a', 's'),
('m', 'a', 's', 'p'),
('m', 'a', 'p', 's')]
(該pprint
是隻是爲了使輸出的外觀整潔。)或者,如果你願意的話,
>>> list(map("".join, itertools.permutations("spam")))
['spam', 'spma', 'sapm', 'samp', 'smpa', 'smap', 'psam', 'psma', 'pasm', 'pams', 'pmsa', 'pmas', 'aspm', 'asmp', 'apsm', 'apms', 'amsp', 'amps', 'mspa', 'msap', 'mpsa', 'mpas', 'masp', 'maps']
謝謝!就是我正在尋找的東西! – 2010-12-16 15:50:35
itertools.permutations
做到這一點。
>>> import itertools
>>> for s in itertools.permutations('banana'):
... print ''.join(s)
...
banana
banaan
bannaa
bannaa
# many, many more...
'python permutation'。 – khachik 2010-12-16 15:46:27