蓝桥杯python组——七段码

蓝桥杯python组——七段码_全排列

蓝桥杯python组——七段码_蓝桥杯_02

import os
import sys
dic = {'a':['f','b'],
'b':['a','g','c'],
'c':['g','d','b'],
'd':['e','c'],
'e':['f','g','d'],
'f':['a','g','e'],
'g':['f','b','e','c']}
import itertools
totle = []
for i in range(2,8):
a = list(itertools.combinations('abcdefg',i))#i代表组合的长度,最短为2最长为7
for j in a:
totle.append(''.join(j)) #化元组为str
#已经变成了['ab', 'ac',......'bcdefg', 'abcdefg']
#然后就要排序''
sum = 0
for str1 in totle:
for num in itertools.permutations(str1):#全排列
for j in range(len(num)-1): #判断例如'bcdefg'变成其他不同序列后是否符合
if num[j+1] not in dic[num[j]]:
break
else:
sum += 1
break
print(sum+7)#最后加7是因为,没有算单个管的,一共7个管所以加上7

答案为80

关于itertools.combinations用法,轻点链接传送

谢谢大家的支持,您的一键三连是 罡罡同学前进的最大动力!