Sérgio, tudo bom?
Não sei se entendi direito a sua pergunta, mas vou tentar ajudar.
A lista permissoes é uma lista (inicialmente vazia) comum que vai receber valores booleanos representando a permissão ou não permissão de dirigir. Esse preenchimento será feito verificando a lista idades segundo as condições do método verifica_se_pode_dirigir(). Veja que o método exige dois parâmetros, o primeiro é a lista de idades de entrada e o segundo uma lista (permissoes) que será utilizado para a saída, o resultado do método.
Após passar a lista idades ([20, 14, 40]) temos que as idades com permissão para dirigir vão gerar valores True e as idades que não possuem idade para dirigir vão gerar valores False. Nesse caso específico será gerada a lista [True, False, True]. Quando o método verifica que a idade é maior que 18 adicionar à lista permissoes o valor True, quando verifica o valor 14 adiciona à lista o valor False e quando por fim verifica o valor 40 retorna True.
Dessa forma é montada a lista permissoes do exemplo.