Генерация всех перестановок без дубликатов путем вращения ⇐ Python
-
Гость
Генерация всех перестановок без дубликатов путем вращения
Я пытаюсь сгенерировать все перестановки списка с условием отсутствия дубликатов при вращении. Итак, если бы я делал это для списков длиной 3, выполняя обычные перестановки, я бы получил как [1, 2, 3], так и [2, 3, 1]. Однако [2, 3, 1] — это просто ротация [1, 2, 3], поэтому я не хочу его включать.
Я мог бы сгенерировать все перестановки, пройтись по циклу и удалить элементы, нарушающие это ограничение, но это кажется расточительным.
Как я могу сделать это, рассматривая перестановки, вместо того, чтобы рассматривать все перестановки, а затем удалять повторяющиеся?
Спасибо!
Я пытаюсь сгенерировать все перестановки списка с условием отсутствия дубликатов при вращении. Итак, если бы я делал это для списков длиной 3, выполняя обычные перестановки, я бы получил как [1, 2, 3], так и [2, 3, 1]. Однако [2, 3, 1] — это просто ротация [1, 2, 3], поэтому я не хочу его включать.
Я мог бы сгенерировать все перестановки, пройтись по циклу и удалить элементы, нарушающие это ограничение, но это кажется расточительным.
Как я могу сделать это, рассматривая перестановки, вместо того, чтобы рассматривать все перестановки, а затем удалять повторяющиеся?
Спасибо!
Мобильная версия