假设有n个条目,每个条目的值可以是0或1。这意味着可能有2的n次方种组合方式。条目数量可以从1到6不等。
如何将每个可能的组合创建为数字序列(例如,对于n = 2:00,01,10,11),而不必使用成千上万个条件判断语句?
如何将每个可能的组合创建为数字序列(例如,对于n = 2:00,01,10,11),而不必使用成千上万个条件判断语句?
0..2^n-1
来实现这一点。n = 5
for x in range(2**n):
print ''.join(str((x>>i)&1) for i in xrange(n-1,-1,-1))
从这个答案中学到的疯狂的十进制转二进制转换。
输出:
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
或者使用 itertools
:
import itertools
for item in itertools.product((1, 0), repeat=4):
print item