```# [brainfuck], 61 bytes

+.+.[.[>]>+++>+++<<<[->+>->-<<<]<[[->+<]<]>>--[[>]<,<[<]>+]>]

[Try it online!][TIO-jez4tau4]

[brainfuck]: https://github.com/TryItOnline/brainfuck
[TIO-jez4tau4]: https://tio.run/##FYpBCoBADAMfFLsvCPlI6EEFQQQPC76/dg9hZiDH3O/3@s6nCgPDw0oBWCPpEBSK1qRXNVOKcB@50V1IZdUP "brainfuck – Try It Online"

Prints numbers as char codes. For clarity, [here's a version](https://tio.run/##lYxBCoBADAPP7VfW7gtCPlJ6UEEQwYPg@2v3sncDgQkk2Z71vI93vzJbb11dpU39Y1HpKjb1j1WcwboZBuDGRqMVhgp8ZMRg0syrjAWOmgQ1Mj8) that prints in numbers (except for the first two elements).

###How It Works:

+.+. Prints the first two elements. These are the self-referential elements
This also intitialises the tape with the third element, 2
[ Start infinite loop
. Print current lowest element
[>]>+++>+++ Move to end of tape and create two 3s
<<<[->+>->-<<<] Subtract the last element of the tape from these 3s
<[[->+<]<]>> Move to the beginning of the tape
--  Subtract two from the first element
This leaves 2 as 0 and 1 as -1
[ If the number was 1
[>]<,  Delete the excess element from the end of the tape
<[<]>+ Remove the -1
]
> Move to the next element of the list
]```