Probably the best way is to convert the maze to a connectivity graph this will get the datasize down. Intersections are nodes and corridor lengths give the weighting. For this you need some kind of linked list structure. Each node having a pointer to all connected nodes with a weighting for each link. With that you can use either brute force with a recursive algorithm to take every path (but beware of loops) if it is small or apply something like Dijkstra's algorithm (see wikipedia) to it.
DC Always remember that you are unique- just like everybody else.