Q195: Anagram

給你一些字元(字串),請你從這些字元產生所有可能的組合。

例如:給你"abc",你的程式應該要產生"abc", "acb", "bac", "bca", "cab" , "cba"

輸入的字元可能會有重複的,但輸出請不要有重複的字串出現。字串輸出的次序請依字元次序遞增。字元次序:AaBbCcDd.....YyZz。

Input

第1列有一個整數 n,代表接下來有n列測試資料。每列測試資料由大寫或小寫的英文字元組成。大小寫請視為不同的字元。

Output

每一筆測試資料請輸出所有可能的組合,每種組合一列。輸出的次序請依字元次序遞增。請參考Sample Output。

Sample input

3
abc
acba
BaA
 

Sample Output

abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa
AaB
ABa
aAB
aBA
BAa
BaA