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()