search_graph = {
's': ['a', 'd'],
'a': ['b', 'c', 's'],
'b': ['a'],
'c': ['a'],
'd': ['e', 'h', 's'],
'e': ['f', 'g', 'd'],
'f': ['e'],
'g': ['e'],
'h': ['i', 'j', 'd'],
'i': ['h'],
'j': ['h'],
}
open_list = ['s',]
closed_list = []
while open_list:
print open_list
n = open_list.pop()
#print n,
closed_list.append(n)
for m in search_graph[n]:
if m not in closed_list:
open_list.append(m)