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