Wait, isn’t this trivial?
If we’re talking about “faces” as in the cubic faces of a tesseract then each of the 8 faces are connected to all other faces except the opposite face. So just spiral around from your starting face (keeping the faces you’ve visited on the inside of the spiral) and you’re fine.
If you mean 2D faces connecting the 3D ones, then things get more difficult but not that much because you can do the exact same thing. Choose a 1D edge as your origin, pick a face touching that edge to start with, traverse that edge twice to get the next two faces. Then traverse three faces which share edges with those faces you already traversed (there are 6 faces with this property, 3 for each vertex of our origin edge, the set you pick determines the “direction” of your overall progress through/around the tesseract). Repeat that step again but for the faces that share edges with two of the three you just did. Repeat again and again and again until the last three faces share a vertex with the origin edge you started with. You’re done.
Am I missing something? Did the prompt mean to say you can only traverse each edge once?
Edit: the 2D face path I described would miss 6 faces. Those six faces should be traversed in the middle, so do the first three faces, the second three, then all six which touch both those three you just traversed and the three you would have done next on the original path. Then do the rest just like I originally mentioned.