- from itertools import permutations
- def generate():
- perms = permutations(range(9),9)
- for each in perms:
- yield([list(each[0:3]),list(each[3:6]),list(each[6:9])])
- for m in generate():
- A = B = 1
- C = D = 0
- for i in range(3):
- if [m[i][0],m[i][1],m[i][2]] == sorted([m[i][0],m[i][1],m[i][2]]):
- A *= A
- else:
- A *= 0
- if [m[0][i],m[1][i],m[2][i]] == sorted([m[0][i],m[1][i],m[2][i]]):
- B *= B
- else:
- B *= 0
- if (m[0][1] < m[1][2]) and([m[0][0],m[1][1],m[2][2]] == sorted([m[0][0],m[1][1],m[2][2]])) and(m[1][0] < m[2][1]):
- C = 1
- if (m[0][1] < m[1][0]) and([m[0][2],m[1][1],m[2][0]] == sorted([m[0][2],m[1][1],m[2][0]])) and(m[1][2] < m[2][1]):
- D = 1
- if A and B and C and D:
- for each_line in m:
- print(each_line)
- print('-'*10)
复制代码
- [0, 1, 2]
- [3, 4, 5]
- [6, 7, 8]
- ----------
- [0, 1, 2]
- [3, 4, 6]
- [5, 7, 8]
- ----------
- [0, 1, 3]
- [2, 4, 5]
- [6, 7, 8]
- ----------
- [0, 1, 3]
- [2, 4, 6]
- [5, 7, 8]
- ----------
复制代码 |