Как перебрать все возможные варианты пароля?

Вот код, но он брутит только знакомый мне пароль, как сделать так, чтобы он подбирал неизвестный мне пароль

import random

correctPassword = "6537"
wrongPasswords = []
password = ""
length = 4
chars = "1234567890"
run = True

while run:
password = ""

for i in range(length):
    password += random.choice(chars)

if password not in wrongPasswords:
    if password != correctPassword:
        print(password)
        wrongPasswords.append(password)
    else:
        run = False
        break

print(password + " is correct")

Ответы (1 шт):

Автор решения: Hellseher
# File     : 1093133.py
# Modified : <2020-3-22 Sun 16:38:54 GMT>
# URL      : https://ru.stackoverflow.com/questions/1098155

import string
import itertools
import time


password_real = "6537"
start_time = time.time()

guess_password_set = string.digits + string.ascii_letters + string.punctuation
guess_password_length = 1


def string_iter(string, length):
    yield from itertools.product(*([string] * length))


while True:
    for password_set in string_iter(guess_password_set, guess_password_length):
        password_string = ''.join(password_set)
        if password_string == password_real:
            end_time = time.time()
            exec_time = end_time - start_time
            print("Password is found for {}s: {}"
                  .format(exec_time, password_string))
            exit()
    guess_password_length += 1
$ python3 1098155.py
Password is found for 1.808835744857788s: 6537
→ Ссылка