我只希望大小为2或更大的字符串排列,所以没有空集或一个字符集。看来r
必须是整数,我不能说r = range(2,N)
或r>=2
。我能想到的唯一解决方案是for循环;有没有更好的办法?
您确实需要for循环。但是您可以使用itertools.chain
来更简洁地进行操作,这将创建一个生成器,该生成器首先生成长度为2的所有排列,然后为3等等。
from itertools import chain, permutations
lst = [1, 2, 3]
tuples_gen = chain(*(permutations(lst, i) for i in range(2, len(lst) + 1)))