In [1]:
import igraph,string
def f(s):
 C=s.find('\n')/2;N=' ';g=igraph.Graph(0,[(i,i+j)for i in range(len(s)/(4*C+4)*C)for j in(1,C)if s[(i/C*2+1)*(2*C+2)+i%C*2+2*j+j/C*3]==N]);V=g.vs;g.d=g.degree;O='';V(_d=1)[N]=N;V(_d_gt=2)[N]=list(string.ascii_letters)
 while g.es:
	v=V(_d=1)[0];O+='|'+v[N]
	while g.d(v):w=v.neighbors()[0];g-=(v,w);v=w;O+=N+v[N]if v[N]else''
 print O+'|'
In [2]:
Mazes=[
"""\
+-+-+-+-+-+-+
| |   |     |
+ + + + +-+-+
|   | |     |
+-+-+ +-+-+ +
|           |
+-+-+-+ +-+ +
|         | |
+ +-+-+-+ + +
| |       | |
+-+-+-+-+-+-+""",
"""\
+-+-+-+-+-+-+
| |   |   | |
+ + + + + + +
|   | | |   |
+-+-+ + +-+-+
|           |
+-+-+-+ +-+ +
|         | |
+ +-+-+-+ + +
| |       | |
+-+-+-+-+-+-+""",
"""\
+-+-+-+-+-+-+-+-+-+
|                 |
+ +-+-+-+-+-+-+-+-+
|                 |
+-+-+-+-+-+-+-+-+ +
|                 |
+-+-+-+-+-+-+-+-+-+""",
"""\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         |                   |
+ +-+-+-+ +-+-+-+-+ +-+-+ +-+ +
|       |           |     |   |
+ +-+-+ +-+-+-+-+ +-+-+-+-+-+-+
| |   | |       | |           |
+ + + + + + +-+ + + +-+-+-+-+ +
| | | | | | |   | | | |     | |
+ + +-+ + +-+-+-+ + + +-+ + + +
| |   | |         |       | | |
+ +-+ + +-+-+-+-+-+ +-+-+-+-+ +
|   | |             |         |
+-+ + +-+-+-+-+-+-+-+ +-+-+-+ +
| | |             |   |   | | |
+ + +-+ +-+-+-+-+ + +-+ + + + +
| | |   |   |   | | |   |   | |
+ + + +-+-+ +-+ + + + +-+-+-+ +
|   | |         | | |         |
+-+ + + +-+-+-+ + + + +-+-+-+-+
| | | | | |   | | | | |       |
+ + + + + +-+ + + + + + +-+-+ +
| | | | |     | | | | | |   | |
+ + + + + +-+-+ + + + + + + + +
| | | | |       | | | | | | | |
+ + + + +-+-+-+-+ + + + +-+ + +
|   | |           | | |     | |
+ +-+ + +-+-+-+-+-+ + +-+-+ + +
| |   | |     |     |   |   | |
+ +-+ + +-+-+ + +-+-+-+ +-+-+ +
|     |       | |             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+""",
"""\
+-+-+-+-+-+-+-+-+-+
| | | | | | | | | |
+ + + + + + + + + +
|                 |
+ + + + + + + + + +
| | | | | | | | | |
+-+-+-+-+-+-+-+-+ +
| | | | | | | | | |
+ + + + + + + + + +
|                 |
+ + + + + + + + + +
| | | | | | | | | |
+-+-+-+-+-+-+-+-+-+"""
]
In [3]:
for s in Mazes:
    print s,'\n->'
    f(s)
+-+-+-+-+-+-+
| |   |     |
+ + + + +-+-+
|   | |     |
+-+-+ +-+-+ +
|           |
+-+-+-+ +-+ +
|         | |
+ +-+-+-+ + +
| |       | |
+-+-+-+-+-+-+ 
->
|  a  |  c b a|b d  |c  |d  |
+-+-+-+-+-+-+
| |   |   | |
+ + + + + + +
|   | | |   |
+-+-+ + +-+-+
|           |
+-+-+-+ +-+ +
|         | |
+ +-+-+-+ + +
| |       | |
+-+-+-+-+-+-+ 
->
|  a  |  b a|  c b  |c  |
+-+-+-+-+-+-+-+-+-+
|                 |
+ +-+-+-+-+-+-+-+-+
|                 |
+-+-+-+-+-+-+-+-+ +
|                 |
+-+-+-+-+-+-+-+-+-+ 
->
|   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         |                   |
+ +-+-+-+ +-+-+-+-+ +-+-+ +-+ +
|       |           |     |   |
+ +-+-+ +-+-+-+-+ +-+-+-+-+-+-+
| |   | |       | |           |
+ + + + + + +-+ + + +-+-+-+-+ +
| | | | | | |   | | | |     | |
+ + +-+ + +-+-+-+ + + +-+ + + +
| |   | |         |       | | |
+ +-+ + +-+-+-+-+-+ +-+-+-+-+ +
|   | |             |         |
+-+ + +-+-+-+-+-+-+-+ +-+-+-+ +
| | |             |   |   | | |
+ + +-+ +-+-+-+-+ + +-+ + + + +
| | |   |   |   | | |   |   | |
+ + + +-+-+ +-+ + + + +-+-+-+ +
|   | |         | | |         |
+-+ + + +-+-+-+ + + + +-+-+-+-+
| | | | | |   | | | | |       |
+ + + + + +-+ + + + + + +-+-+ +
| | | | |     | | | | | |   | |
+ + + + + +-+-+ + + + + + + + +
| | | | |       | | | | | | | |
+ + + + +-+-+-+-+ + + + +-+ + +
|   | |           | | |     | |
+ +-+ + +-+-+-+-+-+ + +-+-+ + +
| |   | |     |     |   |   | |
+ +-+ + +-+-+ + +-+-+-+ +-+-+ +
|     |       | |             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
->
|  a b  |a d c g i  |b  |c k  |d e  |e  |  j q l  |  h g|  f  |f h|i n  |j s  |  m l|k p  |m o  |n t  |  o|  r t|p s|q  |r  |
+-+-+-+-+-+-+-+-+-+
| | | | | | | | | |
+ + + + + + + + + +
|                 |
+ + + + + + + + + +
| | | | | | | | | |
+-+-+-+-+-+-+-+-+ +
| | | | | | | | | |
+ + + + + + + + + +
|                 |
+ + + + + + + + + +
| | | | | | | | | |
+-+-+-+-+-+-+-+-+-+ 
->
|  a b  |  c b  |  d c  |  e d  |  f e  |  g f  |  h g  |  i h  |a  |i r q  |  j k  |  l k  |  m l  |  n m  |  o n  |  p o  |j  |r  |  p q  |