Python 3.8 (pre-release), 3737 34 bytes
def f(l,i=0):print(l[i]);f(l,l[i]) while thanks user for helping save 3 bytes
slightly modified version of 31 bytes, but it prints an extra zero at the beginning
def 1f(l,i=0):print(i:=l[i]);f(l,l[i])