## [UberGenes](https://esolangs.org/wiki/UberGenes), 66 bytes

    =ii+a1=l0-l2=pa=z8*z6=t5*t2=bi=qp%qt+qz=Lq-l1/pt:bp=bi=oL+l1:bL=i0

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