python 解决 多层差数表问题
code:
import itertools
def get_number(high=4):
number=0
for i in range(1,high+1):
number+=i
number_list = list(range(1,number+1))
random_value = list(itertools.permutations(number_list,high))
results=[]
for top_value in random_value:
top_value = list(top_value)
result=top_value
a = high
while a > 1:
top_list = [abs(top_value[i]-top_value[i+1]) for i in range(0,a-1)]
if len(set(top_list)|set(result)) != len(top_list + result):
a = 1
else:
a-=1
result+=top_list
top_value = top_list
if len(result) == len(number_list):
results.append(result)
return results
get_number(6)
评论
发表评论