import random
from pathlib import Path


def build_ai_model():
    word_list = Path('common_words.txt').read_text(encoding='utf-8').splitlines()

    model = {}
    for ln in range(1, 3):
        for word in word_list:
            for i in range(len(word)):
                pre = word[i-ln:i]
                end = word[i]
                if pre not in model:
                    model[pre] = []
                model[pre].append(end)
    return model


def generate_password_ai(password_length):
    ai_model = build_ai_model()

    result = ''
    for _ in range(password_length):
        ending = result[-2:]
        new_symbol = random.choice(ai_model[ending])
        result += new_symbol
    return result


def generate_password_dumb(password_length):
    result = ''
    for _ in range(password_length):
        new_symbol = random.choice('abcdefghijklmnopqrstuvwxyz')
        result += new_symbol
    return result


if __name__ == '__main__':
    print('Generate pasword (dumb): ', generate_password_dumb(12))
    print('Generate pasword (AI): ', generate_password_ai(12))
