Python-显示列表或字符串集的每个排列
例如,我有以下列表:Python-显示列表或字符串集的每个排列,python,string,permutation,Python,String,Permutation,例如,我有以下列表: ['ABC','DEF','GHI','JKL'] 据我估计,应该有26种组合,即 ABCDEFGHIJKL ABCDEFJKLGHI ABCGHIDEFJKL ABCGHIJKLDEF ABCJKLDEFGHI ABCJKLGHIDEF ... 在Python中如何实现这一点 感谢您描述了以下各项的基本用途: 您正在描述以下各项的基本用途: 使用itertools的一种方法: >>> import itertools >>> pri
['ABC','DEF','GHI','JKL']
据我估计,应该有26种组合,即
ABCDEFGHIJKL
ABCDEFJKLGHI
ABCGHIDEFJKL
ABCGHIJKLDEF
ABCJKLDEFGHI
ABCJKLGHIDEF
...
在Python中如何实现这一点
感谢您描述了以下各项的基本用途:
您正在描述以下各项的基本用途:
使用
itertools
的一种方法:
>>> import itertools
>>> print list(itertools.permutations(['ABC','DEF','GHI','JKL'], 4))
[('ABC', 'DEF', 'GHI', 'JKL'), ('ABC', 'DEF', 'JKL', 'GHI'), ('ABC', 'GHI', 'DEF', 'JKL'), ('ABC', 'GHI', 'JKL', 'DEF'), ('ABC', 'JKL', 'DEF', 'GHI'), ('ABC', 'JKL', 'GHI', 'DEF'), ('DEF', 'ABC', 'GHI', 'JKL'), ('DEF', 'ABC', 'JKL', 'GHI'), ('DEF', 'GHI', 'ABC', 'JKL'), ('DEF', 'GHI', 'JKL', 'ABC'), ('DEF', 'JKL', 'ABC', 'GHI'), ('DEF', 'JKL', 'GHI', 'ABC'), ('GHI', 'ABC', 'DEF', 'JKL'), ('GHI', 'ABC', 'JKL', 'DEF'), ('GHI', 'DEF', 'ABC', 'JKL'), ('GHI', 'DEF', 'JKL', 'ABC'), ('GHI', 'JKL', 'ABC', 'DEF'), ('GHI', 'JKL', 'DEF', 'ABC'), ('JKL', 'ABC', 'DEF', 'GHI'), ('JKL', 'ABC', 'GHI', 'DEF'), ('JKL', 'DEF', 'ABC', 'GHI'), ('JKL', 'DEF', 'GHI', 'ABC'), ('JKL', 'GHI', 'ABC', 'DEF'), ('JKL', 'GHI', 'DEF', 'ABC')]
>>> print len(list(itertools.permutations(['ABC','DEF','GHI','JKL'], 4)))
24
使用
itertools
的一种方法:
>>> import itertools
>>> print list(itertools.permutations(['ABC','DEF','GHI','JKL'], 4))
[('ABC', 'DEF', 'GHI', 'JKL'), ('ABC', 'DEF', 'JKL', 'GHI'), ('ABC', 'GHI', 'DEF', 'JKL'), ('ABC', 'GHI', 'JKL', 'DEF'), ('ABC', 'JKL', 'DEF', 'GHI'), ('ABC', 'JKL', 'GHI', 'DEF'), ('DEF', 'ABC', 'GHI', 'JKL'), ('DEF', 'ABC', 'JKL', 'GHI'), ('DEF', 'GHI', 'ABC', 'JKL'), ('DEF', 'GHI', 'JKL', 'ABC'), ('DEF', 'JKL', 'ABC', 'GHI'), ('DEF', 'JKL', 'GHI', 'ABC'), ('GHI', 'ABC', 'DEF', 'JKL'), ('GHI', 'ABC', 'JKL', 'DEF'), ('GHI', 'DEF', 'ABC', 'JKL'), ('GHI', 'DEF', 'JKL', 'ABC'), ('GHI', 'JKL', 'ABC', 'DEF'), ('GHI', 'JKL', 'DEF', 'ABC'), ('JKL', 'ABC', 'DEF', 'GHI'), ('JKL', 'ABC', 'GHI', 'DEF'), ('JKL', 'DEF', 'ABC', 'GHI'), ('JKL', 'DEF', 'GHI', 'ABC'), ('JKL', 'GHI', 'ABC', 'DEF'), ('JKL', 'GHI', 'DEF', 'ABC')]
>>> print len(list(itertools.permutations(['ABC','DEF','GHI','JKL'], 4)))
24
26? 你怎么知道的?实际上有4个4*3*2=24个排列…我晚上11点以后数学不好:-(26?你怎么知道那个数字的?实际上有4!=4*3*2=24个排列…我晚上11点以后数学不好:-(