我有12行(包括|之前的数字)。每条线都可以包含1和最大值之间的自然数,最大值是12。我想找到并打印这12行可能处于的所有可能状态。下面是3个状态示例。
1 | 1 2 3 4 5 6 7 8 9 10 11 12
2 | 1 2 3 4 5 6 7 8 9 10 11 12
3 | 1 2 3 4 5 6 7 8 9 10 11 12
4 | 1 2 3 4 5 6 7 8 9 10 11 12
5 | 1 2 3 4 5 6 7 8 9 10 11 12
6 | 1 2 3 4 5 6 7 8 9 10 11 12
7 | 1 2 3 4 5 6 7 8 9 10 11 12
8 | 1 2 3 4 5 6 7 8 9 10 11 12
9 | 1 2 3 4 5 6 7 8 9 10 11 12
10 | 1 2 3 4 5 6 7 8 9 10 11 12
11 | 1 2 3 4 5 6 7 8 9 10 11 12
12 | 1 2 3 4 5 6 7 8 9 10 11 12
1 | 1 2 3 4
2 | 1 2 3 4 5 6 7 8 9 10 11 12
3 | 1 2 3 4 5 6
4 | 1 2 3 4 5 6 7 8 9 10 11 12
5 | 1 2 3 4 5 6
6 | 1 2 3 4 5 6 7 8 9 10 11 12
7 | 1 2 3 4
8 | 1 2 3 4 5 6 7 8 9 10 11 12
9 | 1 2 3 4 5
10 | 1 2 3 4 5 6 7 8 9 10 11 12
11 | 1 2 3 4 5
12 | 1 2 3 4 5 6 7 8 9 10 11 12
1 | 1
2 | 1 2 3 4 5 6 7 8 9 10 11 12
3 | 10 11 12
4 | 1 2 3 4 5 6 7 8 9 10 11 12
5 | 1 2 3 4 5 6 7 8 9 10 11 12
6 | 7 8 9 10
7 | 5 6 7 8 9 10 11 12
8 | 1 2 3 4 5 6
9 | 3 4 5 6 7
10 | 1 2 3 4 5 6
11 | 1 2 3 4 5 6 7 8 9 10 11 12
12 | 10 11 12
我不知道这里是否适合我的问题——也许我想要的答案是一个python脚本,如果你能指导我的话,谢谢你。
我在Python中唯一知道的组合方法(但还不够)是下面的脚本
import sys
from itertools import chain, combinations
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
file = open('output.txt', 'a')
stdout = sys.stdout
sys.stdout = file
print(list(powerset("1234567989")))
sys.stdout = stdout
file.close()
我想我需要使用
for loop
,也许有11条领带?
注:据我所知,组合总数为12x12=8.9161004e+12