Невозможно выполнить то, о чем вы просили, не написав собственную версию permutations
.
. Учтите следующее:
- У нас есть объект-генератор, содержащий результат
permutations
. - Мы написали нашу собственную функцию, чтобы сообщить нам длину генератора.
- Затем мы произвольно выбираем записи между началом списка и концом.
Поскольку у меня есть генератор, если случайная функция выбирает запись в конце списка, единственный способ добраться до нее - это просмотреть все предыдущие записи и либо выбросить их, что плохоили сохранить их в списке, который вы указали, проблематично, когда у вас много вариантов.
Собираетесь ли вы проходить через каждую перестановку или использовать только несколько?Если это последнее, было бы больше смысла генерировать каждую новую перестановку случайным образом и сохранять те, которые вы видели ранее в set
.Если вы не используете столько затрат, то необходимость создания новой перестановки при каждом столкновении будет довольно низкой.