#P1256. Anagram

    ID: 257 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>数据结构难度普及/提高-Southwestern European Regional Contest 1995

Anagram

题目描述

编写一个程序,根据给定的一组字母生成所有可能的单词组合。

示例:给定单词"abc",程序应通过探索这三个字母的所有不同组合,输出单词"abc"、"acb"、"bac"、"bca"、"cab"和"cba"。

输入单词中可能包含重复字母。对于给定的单词,程序不应生成重复的单词,且输出的单词应按字母升序排列。

输入格式

  • 第一行:单词数量
  • 后续每行:一个单词(由大小写字母组成,长度小于13)
  • 大小写字母被视为不同字符

输出格式

  • 对每个输入单词,输出所有可能的唯一单词组合
  • 同一单词的组合按字母升序排列
  • 大写字母排在小写字母前(A<a<B<b<...<Z<z)

示例输入

输入:
3
aAb
abc
acba

示例输出

Aab
Aba
aAb
abA
bAa
baA
abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa