This generates all possible tree fragments, as above, but sibling nodes can be separated (so they can be part of different tree fragments).
a fragment is any possible tree path, from whose nodes other tree paths can depart.