(Python)
from gmpy2 import digits, mpz
from itertools import count, islice
def agen(): yield from (int(b) for k in count(0) if '2' not in digits(mpz((b:=bin(k)[2:]), 10), 3))
(PARI)
okrange(lb, ub)={my(u=digits(lb, 3), v=digits(ub, 3)); if(#u < #v, 1, my(k=1); while(u[k]!= 2 && u[k]==v[k], k++); u[k]!=2)}
nexta(lb, ub)={
my(recurse(b, m)=
if(m==1, if(b>lb && vecmax(digits(b, 3))==1 && b<ub, b, oo),
if(okrange(b, b+(m-1)/9), m/=10; my(r=self()(b, m)); if(r==oo, r=self()(b+m, m)); r, oo));
);
if(lb<0, 0, my(m=1, r=oo); while(r==oo &&m<ub, if(m*10>lb, r=recurse(m, m)); m*=10); r)
}
{ my(k=0); while(k<oo, print1(k, ", "); k=nexta(k, 10^40)) } \\
Andrew Howroyd, Sep 26 2025