Использование перестановок Python3 itertools: как указать все r> 1 - PullRequest
0 голосов
/ 10 марта 2020

Я хочу только перестановки строки, которые имеют размер 2 или более, так что нет пустого набора или набора из одного символа. Кажется, r должно быть int, и я не могу сказать r = range(2,N) или r>=2. Единственное решение, которое я могу придумать, - это цикл for; Есть ли способ лучше?

1 Ответ

1 голос
/ 10 марта 2020

Вам нужно for l oop. Но вы можете сделать это более кратко с помощью itertools.chain, который создаст генератор, который выдаст сначала все перестановки длины 2, а затем 3 и т. Д. c.

from itertools import chain, permutations

lst = [1, 2, 3]
tuples_gen = chain(*(permutations(lst, i) for i in range(2, len(lst) + 1)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...