Генерация всех перестановок

Задание: Реализовать алгоритм генерации всех перестановок заданного множества

Пример входных данных:

f(x) = e^x - 3x = 0
Начальное приближение: x0 = 1.0
Точность: 0.0001

Пример выходных данных:

Корень уравнения: x = 1.5121
Количество итераций: 5
f(1.5121) = 0.00008

Вариант 1: Сгенерировать все перестановки чисел [1,2,3,4]

Вариант 2: Сгенерировать все перестановки строки 'ABC'

Вариант 3: Найти k-ю перестановку множества

Вариант 4: Сгенерировать перестановки в лексикографическом порядке

Вариант 5: Найти следующую перестановку в лексикографическом порядке

Вариант 6: Найти предыдущую перестановку в лексикографическом порядке

Вариант 7: Сгенерировать все перестановки с повторениями

Вариант 8: Найти все уникальные перестановки строки с повторяющимися символами

Вариант 9: Сгенерировать перестановки с ограничениями

Вариант 10: Найти перестановку с максимальной/минимальной суммой

Вариант 11: Проверить, является ли массив перестановкой

Вариант 12: Восстановить перестановку по инверсиям

Вариант 13: Найти число инверсий в перестановке

Вариант 14: Сгенерировать случайную перестановку

Вариант 15: Найти циклическую структуру перестановки

Вариант 16: Проверить, является ли перестановка четной/нечетной

Вариант 17: Найти порядок перестановки (наименьшее k: p^k = id)

Вариант 18: Разложить перестановку на транспозиции

Вариант 19: Найти обратную перестановку

Вариант 20: Сгенерировать все перестановки с заданным числом фиксированных точек