from itertools import count, islice, product as P
def only(s, D=1): # numbers with >= D digits only from s
yield from (int("".join(p)) for d in count(D) for p in P(s, repeat=d))
def agen(): # generator of terms
aset, an, minan = {0}, 0, 1
while True:
yield an
an, s = minan, set(str(an))
use = "".join(c for c in "0123456789" if c not in s)
for an in only(use, D=len(str(minan))):
if an not in aset: break
aset.add(an)
while minan in aset: minan += 1
a = agen()
for _ in range(100):
n = next(a)
print(n)
To embed this program on your website, copy the following code and paste it into your website's HTML: