eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Генерация анаграмм

Генерация анаграмм

Лимит времени 1 секунда
Лимит использования памяти 128 MiB

Вам следует написать программу, которая сгенерирует все возможные слова из заданного набора букв.

Например, из слова "abc" в результате перестановки букв можно получить слова "abc", "acb", "bac", "bca", "cab" и "cba".

Входные слова могут содержать несколько одинаковых букв. Ваша программа не должна выводить одно и то же слово более одного раза. Все слова следует выводить по возрастанию в алфавитном порядке.

Входные данные

Первая строка содержит количество тестов. Каждая следующая строка содержит слово из букв латинского алфавита (от A до Z). Буквы верхнего и нижнего регистра считать различными.

Выходные данные

Для каждого теста вывести все возможные слова, которые можно получить из заданных букв, в возрастающем алфавитном порядке. Каждое слово выводить в отдельной строке. В алфавитном порядке буква верхнего регистра меньше соответствующей буквы нижнего регистра.

Пример

Входные данные #1
3
aAb
abc
acba
Выходные данные #1
Aab
Aba
aAb
abA
bAa
baA
abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa