Olá Marcio,
O seu código está correto, mas acontece um erro ao executar o código porque o padrão não é encontrado dentro de piada e então o findall retorna uma lista vazia [], e como a lista está vazia você não pode acessar o primeiro elemento em retorno[0] porque não existe nenhum elemento.
Você pode fazer o teste deixando a última linha assim: print(retorno) então você vai ver que o retorno do findall para 'o que 15426325 é ' é uma lista vazia já que o padrão não foi encontrado.
Exemplo:
import re
frase = 'codigo=1234&codigo=1234'
piada = 'o que 15426325 é '
padrao = '[=][0-9]{1,4}'
lista = [frase, piada]
for i in lista:
retorno = re.findall(padrao, i)
print(retorno)
Resultado:
['=1234', '=1234']
[]
Espero ter ajudado, qualquer dúvida é só falar.