首页 > 解决方案 > 超出python排列时间限制

问题描述

我有一个n具有最大值的数字,直到1_000_000

我必须创建一个列表li=range(0,n)并找到 2 个项目的排列

我正在使用此代码

from itertools import permutations 
perm = permutations(li,2)
for i in list(perm): 
    print(i)  

此代码适用于较小的值n

但是如果它的数量很大,我会收到超出时间限制的错误

如何在不使用外部库的情况下解决这些超时错误

标签: python-3.xlistpermutation

解决方案


不要强制列出您的perm变量,只需perm在您的 for 循环中使用您的:

for i in perm: 
    print(i)

小心,你的程序需要很长时间,因为你有999999000000行要打印

不强制列出您的变量的原因perm是不要将所有排列都保存在内存中(您可能会内存不足或需要很长时间)


推荐阅读