import random


def recombine(population):
    """Cross over two parent paths and return the resulting child path

    Arguments received:
    population -- an array of lists of coordinates representing paths

    Arguments returned:
    child -- list of coordinates representing a recombined child path
    """
    # Randomly choose two parents
    options = list(range(len(population)))  # from 1 to 125
    random.shuffle(options)
    partner1 = options[0]
    partner2 = options[1]
    # Choose a split point, take the first parent's order to that split point,
    # then the second parent's order for all remaining points
    split_point = random.randint(0, len(population[0])-1)
    child = population[partner1][:split_point]
    for point in population[partner2]:
        if point not in child:
            child.append(point)
    return child