Olá, Kelvin! Como vai?
Parabéns pela resolução da atividade!
Observei que você explorou a string para definir os caracteres possíveis com Python, utilizou muito bem o random.choice para gerar combinações aleatórias e ainda compreendeu a importância da recursão para garantir que a senha cumpra todos os requisitos.
Uma dica interessante para o futuro é trabalhar com o módulo secrets, indicado para geração de senhas seguras. Assim:
import string
import secrets
def senha_segura(tamanho=12):
caracteres = string.ascii_letters + string.digits + string.punctuation
senha = ''.join(secrets.choice(caracteres) for _ in range(tamanho))
return senha
print(f'Senha gerada: {senha_segura()}')
Isso faz a geração de senhas com maior segurança criptográfica.
Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!