Найти все перестановки строки можно с помощью хорошо известного алгоритма Штейнхауса-Джонсона-Троттера. Но если строка содержит повторяющиеся символы, такие как
AABB,
, то возможных уникальных комбинаций будет 4!/(2! * 2!) = 6
Один из способов достижения этого состоит в том, что мы можем хранить ее в массиве или около того, а затем удалять дубликаты.
Есть ли более простой способ модифицировать алгоритм Джонсона, чтобы никогда не генерировать дубликаты перестановок. (Наиболее эффективным способом)