A366958 Numbers whose difference between the largest and smallest digits is equal to 1.
10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98, 100, 101, 110, 112, 121, 122, 211, 212, 221, 223, 232, 233, 322, 323, 332, 334, 343, 344, 433, 434, 443, 445, 454, 455, 544, 545, 554, 556, 565, 566, 655, 656, 665, 667, 676, 677, 766, 767, 776, 778, 787, 788
Offset: 1
Crossrefs
Programs
-
Mathematica
Select[Range[800],Max[d=IntegerDigits[#]]-Min[d]==1 &]
-
PARI
isok(n) = my(d=digits(n)); vecmax(d) - vecmin(d) == 1; \\ Michel Marcus, Oct 30 2023
-
Python
def ok(n): return max(d:=list(map(int, str(n))))-min(d) == 1 print([k for k in range(800) if ok(k)]) # Michael S. Branicky, Oct 30 2023
-
Python
# faster version for large terms from itertools import count, islice, product def agen(diff=1): # generator of terms; change diff for A366960-A366966 for digits in count(2): s = set() for lo in range(10-diff): hi = lo + diff allowed = list(range(lo, hi+1)) for p in product(allowed, repeat=digits): if p[0]==0 or lo not in p or hi not in p: continue s.add(int("".join(map(str, p)))) yield from sorted(s) print(list(islice(agen(), 60))) # Michael S. Branicky, Oct 30 2023
Comments