Почему после запуска он выводит не пароли а at 0x000001F9F6034F90>
from typing import Optional
class BaseGenerator:
def reset(self) -> None:
raise NotImplementedError
def generate(self) -> Optional[str]:
raise NotImplementedError
class BruteForceGenerator(BaseGenerator):
def __init__(self, alphabet='0123456789abcdefghijklmnopqrstuvwxyz'):
self.alphabet = alphabet
self.base = len(self.alphabet)
self.n = 0
self.length = 0
def reset(self):
self.i = 0
def generate(self):
password = ''
temp = self.n
while len(password) < self.length:
rest = temp % self.base
temp = temp // self.base
password = self.alphabet[rest] + password
if password == self.alphabet[-1] * self.length:
self.length += 1
self.n = 0
else:
self.n += 1
return password
g = BruteForceGenerator()
print(g.generate() for i in range(1000))
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Потому что g.generate() for i in range(1000) - это генератор, а не ваши пароли.
Решение:
g = BruteForceGenerator()
for i in range(1000):
print(g.generate())
Другое решение (sep='\n' нужен, чтобы каждый пароль выводился с новой строки):
g = BruteForceGenerator()
print(*(g.generate() for i in range(1000)), sep='\n')