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 }