import random
from markov import Markov

ORDER = 2
MARKOV = Markov(ORDER)

with open('names.txt') as f:
    for line in f:
        name = line.strip().lower()
        if len(name) >= ORDER:
            MARKOV.update2(name)

def generate_name(markov=MARKOV, min_length=8, max_length=10):
    username = ''.join(filter(bool, markov.generate(min_length, max_length)))
    if random.randint(1, 100) <= 50:
        username += str(int(abs(random.gauss(100, 500))))
    if random.randint(0, 1) == 1:
        username = username.capitalize()
    return username

if __name__ == '__main__':
    print generate_name()