Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-显示列表或字符串集的每个排列_Python_String_Permutation - Fatal编程技术网

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点以后数学不好:-(