1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 using namespace std; 7 8 #define GI ({int _t; scanf("%d", &_t); _t;}) 9 #define FOR(i, a, b) for (int i=a; i<b; i++) 10 #define REP(i, a) FOR(i, 0, a) 11 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 12 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 13 #define DBG(x) cout << #x << "::" << x << endl; 14 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;} 15 bool isUpperCase(char c){return c>='A' && c<='Z';} 16 bool isLowerCase(char c){return c>='a' && c<='z';} 17 bool isLetter(char c){return c>='A' && c<='Z' || c>='a' && c<='z';} 18 bool isDigit(char c){return c>='0' && c<='9';} 19 char toLowerCase(char c){return (isUpperCase(c))?(c+32):c;} 20 char toUpperCase(char c){return (isLowerCase(c))?(c-32):c;} 21 22 string encode(string s) { 23 string res = ""; 24 REP(i, s.size()) { 25 if (isUpperCase(s[i])) { 26 res += (s[i]-'A'+1)*2; 27 } 28 else if (isLowerCase(s[i])) { 29 res += (s[i]-'a'+1)*2+1; 30 } 31 } 32 return res; 33 } 34 35 string decode(string s) { 36 string res = ""; 37 REP(i, s.size()) { 38 if (s[i]%2==0) { 39 res += (s[i]/2)+'A'-1; 40 } 41 else { 42 res += (s[i]-1)/2 + 'a'-1; 43 } 44 } 45 return res; 46 } 47 48 int main() { 49 int cnt = GI; 50 string s; 51 while (cnt--) { 52 cin >> s; 53 s = encode(s); 54 sort(s.begin(), s.end()); 55 do { 56 string t = decode(s); 57 printf("%s\n", t.c_str()); 58 }while (next_permutation(s.begin(), s.end())); 59 } 60 return 0; 61 }