Генерация всех перестановок без дубликатов путем вращенияPython

Программы на Python
Гость
Генерация всех перестановок без дубликатов путем вращения

Сообщение Гость »


Я пытаюсь сгенерировать все перестановки списка с условием отсутствия дубликатов при вращении. Итак, если бы я делал это для списков длиной 3, выполняя обычные перестановки, я бы получил как [1, 2, 3], так и [2, 3, 1]. Однако [2, 3, 1] — это просто ротация [1, 2, 3], поэтому я не хочу его включать.

Я мог бы сгенерировать все перестановки, пройтись по циклу и удалить элементы, нарушающие это ограничение, но это кажется расточительным.

Как я могу сделать это, рассматривая перестановки, вместо того, чтобы рассматривать все перестановки, а затем удалять повторяющиеся?

Спасибо!

Вернуться в «Python»