Permutation 如何提高排列速度

Permutation 如何提高排列速度,permutation,Permutation,我有一个程序可以给出两个整数: n,k n是用于创建范围为(1,n+1)的列表的数字 k是一行中两个数字之间的最大差值 例如,当我设置n=5和k=2时,它必须给出如下列表:[1,4,2,5,3] 您可以看到,此列表中的每个数字都至少有k=2的差异 我像这样编写这个程序,但是它在大量的n中太慢了,我怎么能加快这个代码呢 从itertools导入置换 n、 k=输入(“”)。拆分(“”) n=int(n);k=int(k) def检查(n,k): def解算器(n,k): 尝试: aaa=下一个(解

我有一个程序可以给出两个整数: n,k n是用于创建范围为(1,n+1)的列表的数字 k是一行中两个数字之间的最大差值

例如,当我设置n=5和k=2时,它必须给出如下列表:[1,4,2,5,3] 您可以看到,此列表中的每个数字都至少有k=2的差异

我像这样编写这个程序,但是它在大量的n中太慢了,我怎么能加快这个代码呢

从itertools导入置换

n、 k=输入(“”)。拆分(“”)

n=int(n);k=int(k)

def检查(n,k):

def解算器(n,k):

尝试: aaa=下一个(解算器(n,k)) 对于aaa中的我:

    print(i,end=' ') 
除:
打印(“不可能”)

您好,欢迎光临。请编辑您的问题并适当设置代码格式。您还应该考虑添加Python标签,这可能会帮助您从更大的受众获得关注。
return (i

    for i in (permutations(range(1,n+1)))

    

    

    if check(i,k)

    

     
)
    print(i,end=' ')