UberGenes, 66 bytes
Prints the numbers separated by NULLs. Integers and memory in UberGenes are bounded only by computer memory, so it meets the "forever" requirement.
How it works (indents indicate a loop start):
=ii NOP +a1 INC a (initially 0) =l0-l2 SET l=-2 =pa COPY a INTO p =z8*z6 SET z=48 ('0') =t5*t2 SET t=10 =bi SET b to this location (27) =qp COPY p INTO q %qt MOD q BY 10 +qz ADD 48 to q (turn it into character) =Lq PUT q AT MEM[l] -l1 DEC l /pt DIVIDE p by 10 :bp JUMP back to b's location if p>0 =bi SET b to this location (51) =oL OUTPUT the character in MEM[l] +l1 INC l :bL JUMP back to b's location if MEM[l]>0 =i0 JUMP back to beginning of main loop