如何解决Python 3.6 itertools错误?

如何解决Python 3.6 itertools错误?,python,python-3.x,combinations,itertools,combinatorics,Python,Python 3.x,Combinations,Itertools,Combinatorics,所以,我有一个非常基本的代码: t=[1,2,3,4,5,6,7,8,9,…76,77,78,79,80,81,82,83,84,85,86,87,88,89,90] c=列表(itertools.组合(t,5)) 印刷品(c) 当我运行此程序时,大约需要15秒,然后会出现以下错误: 回溯(最近一次呼叫最后一次): 文件“H://main.py”,第13行,在 印刷品(c) OSError:[Errno 22]参数无效 但是,当我运行此代码时: t=[1,2,3,4,5,6,7,8,9,10

所以,我有一个非常基本的代码:

t=[1,2,3,4,5,6,7,8,9,…76,77,78,79,80,81,82,83,84,85,86,87,88,89,90]
c=列表(itertools.组合(t,5))
印刷品(c)
当我运行此程序时,大约需要15秒,然后会出现以下错误:

回溯(最近一次呼叫最后一次):
文件“H://main.py”,第13行,在
印刷品(c)
OSError:[Errno 22]参数无效
但是,当我运行此代码时:

t=[1,2,3,4,5,6,7,8,9,10,6,7,8,9,10]
c=列表(itertools.组合(t,5))
印刷品(c)
它没有给我错误,而是给了我想要的输出,即:

[(1,2,3,4,5)、(1,2,3,4,6)、(1,2,3,4,7)、(10,7,8,9,10)、(6,7,8,9,10)]
为什么它不能处理列表中的更多数字

我不坚持使用itertools,所以您可以给我展示另一个这样做的示例。它只需给出每一个组合而不重复。

试试这个:

t = range(1, 91)
c = itertools.combinations(t, 5)

for i in c:
    print(i)
它在我的电脑里运行了大约10分钟,最后一个组合正确完成了
(86、87、88、89、90)


区别在于我没有创建列表,所以
c
是一个生成器,I。E它一次只生成一个组合,我立即打印出来。

为什么需要将所有组合放入一个列表中?一个包含4000万元组的列表可能太多了,您的系统/控制台无法处理…?列表
c
的大小是
43949268
元组
5个
元素。我猜你的操作系统在打印这个方面有点问题(可以理解…),试着分别打印每个元组。