import random


def generate_points(n, bound):
    """
    Generates a random list of n city positions (xi, yi).
    n: number of cities
    bound: maximum allowed X or Y position of any city
    returns List[(x1, y1), ..., (xn, yn)]
    """
    points = set()
    while len(points) < n:
        points.add((bound * random.random(), bound * random.random()))
    return list(points)