Natural construction
Python 2, 26 bytes
f=lambda n:map(f,range(n))
Test it on Ideone.
JavaScript (ES6), 32 bytes
f=n=>[...Array(n).keys()].map(f)
Simple enough.
Jelly, 3 bytes
Ḷ߀
This is a monadic link. Try it online!
How it works
Each natural number is the set of all previous natural numbers, i.e., n = {0, …, n-1}. Since there are no natural numbers preceding 0, we have that 0 = {}.
Ḷ߀ Monadic link. Argument: n (natural number)
Ḷ Unlength; yield [0, ..., n-1].
߀ Recursively map this link over the range.