I build a huc12 navigation table which is saved in the geodatabase.I also have a tool that builds HUC8 to HUC8 navigation based on the HUC12 table.
My overall tool used for the NWIS project uses a loop to aggregate all HUC12s in the current HUC8, then I bring in any upstream HUC8s and dissolve. This is much faster for large basins, of course!
I've attached the Python code that builds the navigation table, which can then be traversed using your favorite algorithm. It can easily be tweaked to work to create a navigation for any level HUC.