Python, 54 bytes
j=k=t=2 while t:=k%2>0!=print(t)or-~t:k=k//2or(j:=-~j)
This version consistently outputs True for 1.
Old Python, 57 bytes
j=k=1 while[print(t:=len(f"{k&-k:b}"))]:k=k>>t or(j:=-~j) Old Python, 63 bytes (@pxeger)
j=k=1 while 1:j+=k<1;k=k or j;t=len(f"{k&-k:b}");k>>=t;print(t) Old Python, 73 bytes
def f(j=1,k=1): while 1:j+=k<1;k=k or j;t=len(f"{k&-k:b}");k>>=t;yield t This goes through all positive integers and outputs for each the sequence of distances between 1s in its binary representation.
For example:
1616 -> 11001010000 -> 5,2,3,1 Python, 53 bytes
j=k=t=1 while k:=k//t or(j:=j+(t:=1)):print(k%t);t+=1 Port of @Polichinelle's JS answer.