base = 2 rev(n) = fromdigits(Vecrev(digits(n,base)),base) mx = 2^16 a = vector(1+mx, k, -1) for (k=0, mx, kk = k+rev(k); if (1+kk<=#a && a[1+kk]<0, a[1+kk]=k)) apply(v -> if (v>=0, print (n++-1 " " v)), a) quit