base = 10 f(n) = { my (d=digits(n, base), t=vector(base)); for (k=1, #d, t[1+d[k]]++; ); vecsort(select(sign, t)); } mx = base^4-1 ff = Set(apply(f, [1..mx])) vv = vector(#ff, m, [0]) nb = vector(#ff) for (n=1, mx, m=setsearch(ff,f(n)); if (nb[m]++>#vv[m], vv[m]=concat(vv[m], vector(#vv[m]))); vv[m][nb[m]]=n) print ("0 0"); for (n=1, mx, m=setsearch(ff,f(n)); print (n " " vv[m][nb[m]]); nb[m]--) quit