
#include <stdio.h>
#include <string.h>
#include<math.h>
#define MAX_LENGTH 6
// 子函数1:检查是否有三个连续相同的数字
int hasThreeConsecutiveSame(int num) {
while (num > 0) {
int digit = num % 10;
if (digit == (num / 10) % 10 && digit == (num / 100) % 10) {
return 1; // 存在三个连续相同的数字
}
num /= 10; // 跳过已经检查的三个数字
}
return 0; // 不存在三个连续相同的数字
}
// 子函数2:检查相邻两位的差是否在4以下
int isDifferenceValid(int num) {
while (num > 0) {
int firstDigit = num % 10;
int secondDigit = (num / 10) % 10;
if (abs(firstDigit - secondDigit) > 4) {
return 0; // 差值大于4
}
num /= 10; // 跳过已经检查的两位数字
}
return 1; // 所有相邻两位的差都在4以下
}
// 生成门票号码
void generateTickets(int x, int y) {
for (int i = x; i <= y; ++i) {
int num = i;
int valid = 1;
while (num > 0) {
int digit = num % 10;
if (digit < 0 || digit > 6) {
valid = 0; // 数字不在0~6范围内
break;
}
num /= 10;
}
if (valid && !hasThreeConsecutiveSame(i) && isDifferenceValid(i)) {
printf("%06d\n", i);
}
}
printf("\n"); // 每个测试结尾空行
}
int main() {
int n, x, y;
scanf("%d", &n); // 读取测试用例数量
while (n--) {
scanf("%d %d", &x, &y); // 读取每个测试的x和y
generateTickets(x, y);
}
return 0;
}