2017-08-16 22:54:45 +08:00

31 lines
866 B
Python

def gen_iter(result, digit, pool, pick):
if not digit:
result.append(pick)
else:
for i in range(len(pool) - digit + 1):
gen_iter(result, digit - 1, pool[i + 1:], pick + pool[i])
def gen_pick(digit, pool):
result = []
gen_iter(result, digit, pool, '')
return result
def judge(state, c1, c2):
for p1, p2 in state:
if not ((p1 in c1 and p2 in c2) or (p2 in c1 and p1 in c2)):
return False
return True
def search():
state = [('0', '1'), ('0', '4'), ('0', '6'), ('1', '6'), ('2', '5'), ('3', '6'), ('4', '6'), ('6', '4'), ('8', '1')]
tale = []
cube = gen_pick(6, '0123456786')
for i in range(len(cube)):
for j in range(i, len(cube)):
if judge(state, cube[i], cube[j]):
tale.append((cube[i], cube[j]))
return len(tale)
print(search())