def balanced_parts(L, N):
    """\
    Find N numbers that sum up to L and are as close as possible to each other.

    >>> balanced_parts(10, 3)
    [4, 3, 3]
    """
    if not (1 <= N <= L):
        raise ValueError("number of partitions must be between 1 and %d" % L)
    q, r = divmod(L, N)
    return r * [q + 1] + (N - r) * [q]