Задача, которая на Python решается практически в одну строчку. Но благодаря ей, познакомимся с ещё одной полезной функцией стандартной библиотеки. Читаем условие: Для начала надо определить, сколько может быть перестановок, чтобы понять, можем ли мы использовать Python или потребуется что-нибудь быстрее. Так как символы не повторяются, количество различных перестановок равно факториалу от N. То есть в самом худшем случае будет 8! = 40,320 перестановок. Вывод очередной перестановки (как и построение следующей из предыдущей) занимает O(N) времени. Грубыми прикидками получаем существенно меньше миллиона операций, поэтому можем решать на Python. Более того, мы будем использовать готовую функцию из библиотеки itertools, написанную на С++, то есть всё будет совсем быстро. Эта функция permutations: itertools.permutations(iterable, r=None)
Return successive r length permutations of elements from the iterable.
If r is not specified or is None, then r defaults to the length of the iterable and