Então que precisei de um gerador de CNPJ válido, e, já conhecendo o bom código funcional para GeradorDeCpf do OsvaldoSantanaNeto , decidi fazer a minha interpretação dele.
Código
import random def cnpj(self, punctuation = False): n = [random.randrange(10) for i in range(8)] + [0, 0, 0, 1] v = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6] # calcula dígito 1 e acrescenta ao total s = sum(x * y for x, y in zip(reversed(n), v)) d1 = 11 - s % 11 if d1 >= 10: d1 = 0 n.append(d1) # idem para o dígito 2 s = sum(x * y for x, y in zip(reversed(n), v)) d2 = 11 - s % 11 if d2 >= 10: d2 = 0 n.append(d2) if punctuation: return "%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d" % tuple(n) else: return "%d%d%d%d%d%d%d%d%d%d%d%d%d%d" % tuple(n)
Se você precisa de alguns CNPJs aleatórios use a função assim:
print("\n".join([cnpj(True) for i in range(10)]))
E se você não quiser a pontuação no nome, não passe nenhum argumento para a função. Simples assim.