Olá, Mauricio, como vai?
A lógica de usar re.fullmatch
é adequada, pois garante que toda a string digitada siga o padrão definido. Apenas um detalhe: no regex, os pontos .
precisam ser escapados com uma barra invertida \.
para que sejam interpretados como pontos literais e não como qualquer caractere.

Um exemplo de ajuste seria trocar a expressão regular por r"\d{3}\.\d{3}\.\d{3}-\d{2}"
. Dessa forma, o programa aceitará apenas pontos reais entre os blocos numéricos.
Parabéns pela implementação e obrigado por compartilhar seu exercício. Continue postando suas soluções, pois isso enriquece bastante as discussões. O fórum está sempre à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!