长列表的排列会破坏记忆

问题描述

#!/usr/bin/python                                                                                                                          

import itertools

list1 = ['XTN','XES','XSD','XRT','XLI','XME','XLE','XLF','XAR','XLB','XHE','XLK','XLY','XHB','XBI','XLP','XLV','XPH','XLU']

perm = list(itertools.permutations(list1))

print(perm)

嗨,上面的代码在大小合适的实例或站上被“杀死”,无论如何它的运行时间是不可接受的。

我的问题是,对于给定的列表,我想排列排列但产生所有,例如“A”、“B”、“C”

A
B
C
AB
AC
BC

等等 - 任何人都有可以为任意列表执行此操作而不压缩机器的代码

解决方法

itertools.permutations() 返回一个生成器,因此您可以……不将其转换为列表。

list1 = ['XTN','XES','XSD','XRT','XLI',...]
permutations = itertools.permutations(list1)
for permutation in permutations:
  print(permutation)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...