python是否有一些内置函数,通过它我可以生成像这样的序列
对于i = 5,有多少种不同的方式0和1可以占据五个位置,如
00000
00001
00010
00011
00100
.
.
.
.
11111
对于i = 6,0和1可以占用6个位置的方式有多少:
000000
000001
000010
000011
000100
000101
.
.
.
111111
我已经熟悉itertools permutation and combination
,但我无法生成这样的序列。任何帮助将不胜感激。
答案 0 :(得分:3)
您可以使用itertools.product
>>>from itertools import product
>>>list(product([0,1],repeat=5))
答案 1 :(得分:1)
不太优雅,但您也可以使用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')]