1 /*描述
 2 万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。
 3 很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:
 4 门票号是由0~6组成的六位数(0~6这几个数字可重用)
 5 每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)
 6 每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)
 7 输入
 8 第一行一个n,代表输入个数
 9 接下去n行,每行两个数字x,y(x <= y)
10 输出
11 对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。
12 样例输入
13 2
14 001001 001002
15 001011 001012
16 样例输出
17 001001
18 001002
19 
20 001011
21 001012
22 */
23 #include<stdio.h>
24 #include<string.h>
25 #include<stdlib.h>
26 int main()
27 {
28     char s[7], c[7];
29     int n, i, a, b;
30     scanf("%d",&n);
31     getchar();
32     while(n--)
33     {
34         scanf("%s%s",s,c);
35         getchar();
36         while(strcmp(s , c) <= 0)
37         {
38             a=1; b=1;
39             for(i = 0; i < 4; i++)
40             {
41                 if(s[i]==s[i+1] && s[i+1]==s[i+2])
42                 {
43                     a = 0;
44                     break;
45                 }
46             }
47             for(i = 1; i < 5; i++)
48             {
49                 if(abs(s[i]-s[i-1]) > 4 || abs(s[i]-s[i+1]) > 4)
50                 {
51                     b = 0;
52                     break;
53                 }
54             }
55             if(a*b)
56                 printf("%s\n",s);
57             s[5]+=1;
58             for( i = 5; i >= 0; i--)
59             {
60                 if(s[i] == 55)
61                 {
62                     s[i] = 48;
63                     s[i-1] += 1;
64                 }
65                 else
66                 break; 
67             }
68         }
69         printf("\n");
70     }
71     return 0;
72 }