Oi, Manuela! Tudo bem?
Desculpa a demora por um retorno.
A biblioteca Faker é uma escolha popular e útil para gerar dados randômicos sem duplicidade. Entretanto, a Faker em si não garante a unicidade dos dados, pois sua principal função é gerar dados fictícios realistas.
Dessa forma, para evitar a duplicação, gerando dados únicos, podemos recorrer a função "unique" da Faker, como podemos conferir na documentação: Unique Values.
Por exemplo, para gerar CPFs únicos, podemos fazer algo assim:
from faker import Faker
fake = Faker()
cpf = fake.unique.random_number(digits=11)
Entretanto, é válido informar que ao executar o código múltiplas vezes, em diferentes momentos, pode haver chances de duplicação de números, porque a garantia de unicidade não é estendida além da execução atual. Portanto, se precisarmos garantir unicidade em várias execuções do programa ou se a garantia de unicidade é absolutamente crucial, devemos considerar abordagens como a geração baseada em hash ou o uso de UUIDs.
Deixo como indicação também a biblioteca "Faker_BR", que é uma extensão da Faker específica para o Brasil e pode gerar CPFs e CNPJs válidos e únicos.
Espero ter ajudado. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓