#include<cstdio> #include<algorithm> #include<cstring> using namespace std; bool cmp(int a,int b) { /*扩大两倍两个同类型字母正好差2,中间可以放一个大(小)写字母 * 'a'<'B'<'b' -> 194<195<196 *其实不乘2,+31.5也可以,但要变成int */ return (a = (a>=97)?2*a:2*a+63)<(b = (b>=97)?2*b:2*b+63); } int main() { char str[20]; int n; scanf("%d",&n); getchar(); while(n--) { gets(str); sort(str,str+strlen(str),cmp); do { puts(str); } while(next_permutation(str,str+strlen(str),cmp)); } return 0; }