(Python)
from itertools import count, islice
def ispow2(k): return bin(k).count("1") == 1
def agen(): # generator of terms
A352808lst = [0, 1]; A352808set = {0, 1}
k, mink, p = 1, 2, 2
for n in count(2):
if ispow2(k): yield n-1
ahalf, k = A352808lst[n//2], mink
while k in A352808set or k&ahalf: k += 1
A352808lst.append(k); A352808set.add(k)
while mink in A352808set: mink += 1
(C++) See Links section.