graph={'673TCDealersBillingAgregationByPaymntresp': ['562TCDealersBillingIbonus', '632TCDealersBillingAgregationByOutlets'],
'616TCDealersBillingObonus': ['496TCDealersBillingBillingRecordCreation', '572TCDealersBillingLbonus'],
'475TCDealersBillingInsertContracts': ['592TCDealersBillinggmbdTwithdrawal', '620TCDealersBillingRbonus'],
'562TCDealersBillingIbonus': ['594TCDealersBillinggmbdIwithdrawal', '576TCDealersBillinggmbacTmNwithdrawal', '500TCDealersBillingDataArchiving'],
'582TCDealersBillinggmbacTmIwithdrawal': ['550TCDealersBillingMbonus', '560TCDealersBillingTbonus', '477TCDealersBillingBuildHierarchy', '534TCDealersBillingGetMoneyBackNotPayed', '475TCDealersBillingInsertContracts', '600TCDealersBillingGbonus'],
'511TCDealersBillingDbonus': ['502TCDealersBillingInvoiceCreation', '570TCDealersBillingNbonus', '642TCDealersBillingServCenterBonus', '673TCDealersBillingAgregationByPaymntresp'],
'500TCDealersBillingDataArchiving': ['502TCDealersBillingInvoiceCreation'],
'634TCDealersBillingMarketing': ['634TCDealersBillingMarketing', '612TCDealersBillingKbonus'],
'554TCDealersBillinggmbacTmTwithdrawal': ['511TCDealersBillingDbonus', '614TCDealersBillingSbonus']}
import sys
report=sys.stdout#open("123.txt","w")
def find_all_paths(graph, start, val=[], path=[], a=[]):
path = path + [start]
val.append(path)
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, val, path, a)
for newpath in newpaths:
paths.append(newpath)
for i in val:
for j in i:
if j not in a:
a.append(j)
a.remove(start)
return a
print>>report, find_all_paths(graph,'511TCDealersBillingDbonus')
print>>report, "===================================================="
print>>report, find_all_paths(graph,'602TCDealersBillingJbonus')
print>>report, "++++++++++++++++++++++++++++++++++++++++++++++++"
print>>report, find_all_paths(graph,'511TCDealersBillingDbonus')
print>>report, "===================================================="
результат выполнения данного кода:
['502TCDealersBillingInvoiceCreation', '570TCDealersBillingNbonus', '642TCDealersBillingServCenterBonus', '594TCDealersBillinggmbdIwithdrawal', '576TCDealersBillinggmbacTmNwithdrawal', '500TCDealersBillingDataArchiving', '562TCDealersBillingIbonus', '632TCDealersBillingAgregationByOutlets', '673TCDealersBillingAgregationByPaymntresp']
====================================================
[]
++++++++++++++++++++++++++++++++++++++++++++++++
['502TCDealersBillingInvoiceCreation', '570TCDealersBillingNbonus', '642TCDealersBillingServCenterBonus', '594TCDealersBillinggmbdIwithdrawal', '576TCDealersBillinggmbacTmNwithdrawal', '632TCDealersBillingAgregationByOutlets',[u]602TCDealersBillingJbonus[/u], '500TCDealersBillingDataArchiving', '562TCDealersBillingIbonus', '673TCDealersBillingAgregationByPaymntresp']