big = 1 000 000 s = 0 S = Set([]) unseen = 1 seen(v) = if (v < big, bit test(s, v), set search(S, v)) see(v) = if (v < big, s = bit or(s, 2^v), S = set union(S, Set([v]))); while (seen(unseen), unseen++) A002113(n, L=logint(n, 10))=(n-=L=10^max(L-(n<11*10^(L-1)), 0))*L+fromdigits(Vecrev(digits(if(n<L, n, n\10)))) \\ M. F. Hasler, Sep 11 2018 pal = A002113 i=1 \\ running total = i-th palindrome other() = { my (u=i-1, v=i+1); my (pali=pal(i)); while (u>0, my (du=pali-pal(u), dv=pal(v)-pali, d=min(du,dv)); if (!seen(d), if (d==du, i=u; return (d); ); if (d==dv, i=v; return (d); ); ); if (d==du, u--); if (d==dv, v++); ); while (1, my (d=pal(v)-pali); if (!seen(d), i=v; return (d); ); v++; ); } for (n=1, 10 000, see(a=other()); print (n " " a)) quit