PythonPython 3, 10081 bytes
e=lambda g:[[int(g)]]+[b+[int(g[i:])]for i in range(1,len(g))for b in f(g[:i])];f=lambda n:e(str(n))
Call with f(n)
.
f=lambda g:{(int(g),)}|{b+(int(g[i:]),)for i in range(1,len(g))for b in f(g[:i])}
N.B. https://codegolf.stackexchange.com/a/210334/98034 Has 87 bytes in Python, but I think that one is invalid because it requires the input to be a string. If that is allowed, I can make it 79 bytes:Try it online!
f=lambda g:[[int(g)]]+[b+[int(g[i:])]for i in range(1,len(g))for b in f(g[:i])]