Não tenho certeza se existem ferramentas que vão te dar o resultado diretamente de uma forma facilmente compreensível, mas se não, o procedimento para fazê-lo "manualmente" seria o seguinte (eu estou considerando que você está realmente voltando para a cidade de partida ):
Descubra a tarifa mais barata para toda a viagem. Você pode usar ferramentas como o ExpertFlyer para procurar tarifas.
Observe que, no seu caso, ele precisará ser uma tarifa de sua origem para um dos dois "destinos", o que permite o roteamento por meio do outro destino, bem como pelo menos uma escala. Isso eliminará rapidamente muitas das tarifas mais baratas. Você também pode ter algumas outras regras (datas de validade, duração mínima / máxima ...) que podem restringir ainda mais as tarifas aplicáveis.
Depois de encontrar as tarifas válidas, confira a classe de reserva associada para cada uma delas (a primeira letra do código da tarifa).
Para cada um dos voos, verifique a disponibilidade nessas classes (para essa companhia aérea) em um intervalo de datas. Mais uma vez, ferramentas como Expertflyer
vai deixar você fazer isso. Depois de encontrar uma sequência de voos disponíveis com a turma certa, você poderá reservar a viagem inteira nessas datas. Se não houver disponibilidade, comece novamente com a próxima tarifa mais alta.
Observe que você também pode considerar reservar os voos de forma independente (ou uma combinação de dois ingressos). Em alguns casos, você pode até economizar fazendo uma série de voos de retorno mesmo se não usar o retorno.
Tudo somado, um pouco de trabalho, de fato.