使用Python3 itertools排列:如何指定所有r> 1

问题描述 投票:-1回答:1

我只希望大小为2或更大的字符串排列,所以没有空集或一个字符集。看来r必须是整数,我不能说r = range(2,N)r>=2。我能想到的唯一解决方案是for循环;有没有更好的办法?

python python-3.x permutation itertools
1个回答
0
投票

您确实需要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)))
© www.soinside.com 2019 - 2024. All rights reserved.