Let be a convex polytope in . One can extend the discussion below for the unbounded case (polyhedron) by adding a face at infinity, but for simplicity we assume is bounded.
First of all the answer does not depend on how is given. The problem for H-polytopes is equivalent to the one for V-polytopes by duality. See Sections 2.11 and 2.4.
There are algorithms (e.g. [Rot92,Sei86,FLM97] ) that can generate all faces from a V-representation or from a H-rerepsentation. Perhaps the backtrack algorithm [FLM97] is easiest to implement and works directly for the unbounded case. It is also a compact polynomial algorithm (see 2.15) and thus needs little space to run. Algorithms that need to store all faces during computation tend to be too complicated to implement, because one needs to manage a complex data structure of faces and their incidences.
Another approach to generate all faces consists of two steps.