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)






评论

此博客中的热门博文

CREST 结构变异检测工具安装指南