Пытался решить данную задачу алгоритмом прохождения графа, перебирая каждую остановку и ищя смежные маршруты. Например на остановке 1 есть марршруты A,B,C; на остановке 2 C,Z,K. Значит от остановки 1 до остановки 2 можно добраться маршрутом C. Для «пересадок» делал рекурсивный обход остановок каждого из маршрутов начальной оставки.
НО как показала практика — алгоритм ООООЧЕНЬ тормозной и генерит много запросов. Уверен что есть более правильные алгоритмы