estava imaginando
criar uma lista com dois objetos, na primeira com nomes de cidades que
corresponde a city from e um segundo objeto city to e a combinação
destes me dariam as distâncias.
Creio que existam 2 maneiras, uma por força bruta e outra mais inteligente.
Veja nesta discussão um código com ggmaps e busca por ZIP code nos EUA. Pode ser um bom ponto de partida.
Do lado da força bruta, eu posso te dizer o meu passo a passo (não tenho mais o código, já tem tempo!). Quando tive esse problema, gerei um código que media a distância entre cidades a partir dos dados do IBGE e de uma fórmula simples, que você encontra na internet facilmente (existem duas, mas acho essa a melhor).
Os arquivos shape do IBGE sobre os municípios possuem as coordenadas das cidades. Extrai essa informação em um data frame com 4 variáveis (coord x e y, nome da cidade e nome da UF). Depois, o script gerava um data frame com cada combinação possível de pares de cidades (sim, é gigantesco) e calculava a distância.