How can I walk the tree in a USD file?

Is there a way to discover the structure of a USD file at runtime? I.e. can I walk the tree and figure out all the unique paths? (Then I could use those paths with the Get Generated Component).

Also, is there a way to pass in a wild card or to have the Get Generated Component to recurse through the tree from that point?

(e.g. GetGeneratedComponent(“/World/Geometry/Wall/*”) would return an array with all the separate wall components)