Есть простая оптимизация - из всех возможных ходов из текущей клетки перебирать сначала те, которые ведут в клетку с наименьшим количеством возможных следующих ходов (это надо проверить и все ходы через один ход и посмотреть, а обойдены ли те клетки уже)
Я здесь просто подумал что цена в корзине должна быть зафиксирована при добавлении, и не зависеть от дальнейшего изменения цены товара
так автор и пытается избежать подобных проблем при конвертации
Она не плохая и не хорошая. Нормальная идея.
Но сейчас у Вас явно недостаточно практического опыта для её реализации. А потому идите более длинным путём. Во-первых, решите задачу. Во-вторых, чего-то освоите в процессе. Опять же никто не мешает не только дорабатывать, но и, набравшись опыта, пойти наконец озвученным в вопросе путём - но уже без цейтнота.
Выгрузку из БД и загрузку в Excel собственно делайте из своего питонского кода. Но сперва отработайте каждый из процессов в чистом варианте - выгрузку из клиента командной строки (получив правильный текст запроса и нужные прагма-настройки), загрузку через VBA. И то, и другое потом перенесёте в питон, благо там корректировка и адаптация минимальны.
В общем, кушайте слона по кусочкам.