Тема: Задача про існування маршруту і вибір оптимального
Доброго дня!
Є задача визначити чи існує маршрут між містами. І друга частина - якщо існує декілька. то вибрати оптимальний.
Дойшов тільки ось до чого:
# Пошук маршруту
def base_of_ways(oneway = []):
    global n,base,towns
    n = int(input('Введіть кількість маршрутів '))
    base = {}
    for i in range (0, n):
        t = str(input('Введіть дані маршруту №{} через кому у вигляді: Номер автобусу, Місто відправлення, Місто прибуття, Вартість : '.format(i+1))).split(',')
        oneway.append(t)
        base[int(oneway[i][0])] = [oneway[i][1],oneway[i][2],int(oneway[i][3])]
    return base
def way_check(T=False,TH=False,initial='',final='',route=[],routes={},Cost=0):
    towns = list(str(input('Введіть Ваш маршрут у вигляді: <з якого міста>,<в яке місто>: ')).split(','))
    initial = towns[0]
    final = towns[1]
    for i in base:
        if (base[i][0] == towns[0] or base[i][0] == initial) and base[i][1] == final:
            T = True
            Cost+=base[i][2] 
        elif base[i][0] == towns[0] and base[i][1] != towns[1]:
            towns[0] = base[i][1]
            Cost+=base[i][2]
    if T:
        print('Можна дістатись із міста {} в місто {}. Вартість {}.'.format(initial,final,Cost))
    else:
        print('Не можна дістатись із міста {} в місто {}.'.format(initial,final))
    return T
base_of_ways()
print(base)
way_check()Розумію, що має бути якийсь рекурсивний алгоритм і необхідно визначити всі можливі шляхи в вигляді списків. Але що робити далі і чи обов язкова рекурсія?
Буду вдячний за пораду!