import random
from pathlib import Path
import json

def main():
    # 1a
    res = ''
    for _ in range(12):
        res += get_token_1a()
    print(res)

    # 1b
    res = ''
    for _ in range(12):
        res += get_token_1b(res)
    print(res)   

    # 1c 
    file_content = Path('weights.json').read_text(encoding='utf-8')
    weights = json.loads(file_content)

    res = ''
    for _ in range(12):
        res += get_token_1c(res, weights)
    print(res) 

def get_token_1a():
    letters = 'abcdefghijklmnopqrstuvwxyzøæå'
    return random.choice(letters)

def get_token_1b(context):
    if context == '':
        return 'a'
    else:
        last_letter = context[-1]
        return chr(ord(last_letter) + 1)

def get_token_1c(context, weights):
    if context == '':
        last_letter = ''
    else:
        last_letter = context[-1]

    vekter = weights[last_letter]
    letters = list(vekter.keys())
    relative_prob = list(vekter.values())
    random_letter = random.choices(letters, weights=relative_prob, k=1)[0]

    return random_letter


if __name__ == '__main__':
    main()