num_list = [0, 1, 2, 3, 4, 5, 6, 7]
top_list = [x for x in num_list if x != 0] # 组成数字的首以出现的数字
mid_list = [x for x in num_list] # 组成数字的中部位可以出现的数字
end_list = [x for x in num_list if x != 0 if x != 2 if x != 4 if x != 6] #组成奇数 尾部可以出现的数字
n = int(input('你想计算组成多少位的个数:'))
if n == 1:
number = len(end_list) # 一位数 只存在尾部
print('组成%d位数是%d个' % (n, number))
elif n == 2:
number = len(top_list) * len(end_list) # 两位数 有头有尾
print('组成%d位数是%d个' % (n, number))
elif n > 2:
number = len(top_list) * len(mid_list) * (n - 2) * len(end_list) # 中间部位掐头去位 出现的次数
print('组成%d位数是%d个' % (n, number))