map = {
'a': ['b', 'c'],
'b': ['c', 'd'],
'c': ['d', 'a'],
'd': []
}
def print_paths(map, start, length, prefix = ''):
if length == 0:
print prefix
else:
for a in map[start]:
print_paths(map, a, length - 1, prefix + start)
for a in map.keys():
print_paths(map, a, 5)