Python中的排列组合
Permutation and Combination in Python
python 是否有一些内置函数,通过它我可以生成这样的序列
对于i = 5,0和1有多少种不同的方式可以占据5个位置,如
00000
00001
00010
00011
00100
.
.
.
.
11111
对于i = 6,0和1有多少种方式可以占据6个位置:
000000
000001
000010
000011
000100
000101
.
.
.
111111
我已经熟悉 itertools permutation and combination
但我无法生成这样的序列。任何帮助将不胜感激。
您可以使用itertools.product
>>>from itertools import product
>>>list(product([0,1],repeat=5))
不太优雅,但您也可以使用 permutations
:
from itertools import permutations
print sorted(list(set(list(permutations('0000011111', 5)))))
输出
[('0', '0', '0', '0', '0'), ('0', '0', '0', '0', '1'), ('0', '0', '0', '1', '0'), ('0', '0', '0', '1', '1'), ('0', '0', '1', '0', '0'), ('0', '0', '1', '0', '1'), ('0', '0', '1', '1', '0'), ('0', '0', '1', '1', '1'), ('0', '1', '0', '0', '0'), ('0', '1', '0', '0', '1'), ('0', '1', '0', '1', '0'), ('0', '1', '0', '1', '1'), ('0', '1', '1', '0', '0'), ('0', '1', '1', '0', '1'), ('0', '1', '1', '1', '0'), ('0', '1', '1', '1', '1'), ('1', '0', '0', '0', '0'), ('1', '0', '0', '0', '1'), ('1', '0', '0', '1', '0'), ('1', '0', '0', '1', '1'), ('1', '0', '1', '0', '0'), ('1', '0', '1', '0', '1'), ('1', '0', '1', '1', '0'), ('1', '0', '1', '1', '1'), ('1', '1', '0', '0', '0'), ('1', '1', '0', '0', '1'), ('1', '1', '0', '1', '0'), ('1', '1', '0', '1', '1'), ('1', '1', '1', '0', '0'), ('1', '1', '1', '0', '1'), ('1', '1', '1', '1', '0'), ('1', '1', '1', '1', '1')]
python 是否有一些内置函数,通过它我可以生成这样的序列
对于i = 5,0和1有多少种不同的方式可以占据5个位置,如
00000
00001
00010
00011
00100
.
.
.
.
11111
对于i = 6,0和1有多少种方式可以占据6个位置:
000000
000001
000010
000011
000100
000101
.
.
.
111111
我已经熟悉 itertools permutation and combination
但我无法生成这样的序列。任何帮助将不胜感激。
您可以使用itertools.product
>>>from itertools import product
>>>list(product([0,1],repeat=5))
不太优雅,但您也可以使用 permutations
:
from itertools import permutations
print sorted(list(set(list(permutations('0000011111', 5)))))
输出
[('0', '0', '0', '0', '0'), ('0', '0', '0', '0', '1'), ('0', '0', '0', '1', '0'), ('0', '0', '0', '1', '1'), ('0', '0', '1', '0', '0'), ('0', '0', '1', '0', '1'), ('0', '0', '1', '1', '0'), ('0', '0', '1', '1', '1'), ('0', '1', '0', '0', '0'), ('0', '1', '0', '0', '1'), ('0', '1', '0', '1', '0'), ('0', '1', '0', '1', '1'), ('0', '1', '1', '0', '0'), ('0', '1', '1', '0', '1'), ('0', '1', '1', '1', '0'), ('0', '1', '1', '1', '1'), ('1', '0', '0', '0', '0'), ('1', '0', '0', '0', '1'), ('1', '0', '0', '1', '0'), ('1', '0', '0', '1', '1'), ('1', '0', '1', '0', '0'), ('1', '0', '1', '0', '1'), ('1', '0', '1', '1', '0'), ('1', '0', '1', '1', '1'), ('1', '1', '0', '0', '0'), ('1', '1', '0', '0', '1'), ('1', '1', '0', '1', '0'), ('1', '1', '0', '1', '1'), ('1', '1', '1', '0', '0'), ('1', '1', '1', '0', '1'), ('1', '1', '1', '1', '0'), ('1', '1', '1', '1', '1')]