login
A273885
Pick any pair of "7" digits in the sequence. Those two "7"s are separated by k digits. This is the lexicographically earliest sequence of distinct terms in which all the resulting values of k are distinct.
11
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 47, 51, 52, 53, 54, 55, 56, 58, 57, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 80
OFFSET
1,3
COMMENTS
The sequence starts with a(1)=0. It is then always extended with the smallest integer not yet present and not leading to a contradiction (which would mean producing a value of k already seen).
LINKS
PROG
(Python)
from itertools import count, islice
def newdiffs(s, alen, locs1, diffs1):
out = set(alen+i-j for i, c in enumerate(s, 1) if c == '7' for j in locs1)
out |= set(i-j for j in range(len(s)-1) for i in range(j+1, len(s)) if '7' == s[i] == s[j])
return out
def agen(): # generator of terms
an, locs1, diffs1, mink, aset, alen = 0, [], set(), 1, {0}, 1
while True:
yield an
an = next(k for k in count(mink) if k not in aset and ('7' not in (s:=str(k)) or not newdiffs(s, alen, locs1, diffs1)&diffs1))
stran = str(an)
if '7' in stran:
diffs1 |= newdiffs(stran, alen, locs1, diffs1)
locs1.extend([alen+i for i, c in enumerate(stran, 1) if c == '7'])
alen += len(stran)
aset.add(an)
while mink in aset: mink += 1
print(list(islice(agen(), 72))) # Michael S. Branicky, Oct 01 2025
CROSSREFS
Cf. A273376 (equivalent with digit "1").
Sequence in context: A236674 A273886 A258068 * A363287 A174670 A212554
KEYWORD
nonn,base
AUTHOR
STATUS
approved