from typing import Iterable
import itertools


def find_n_numbers_that_add_to(numbers: Iterable[int],
                               n: int,
                               desired_outcome: int) -> Iterable[int]:
    """Finds a combination of n nunbers in a list (or other iterable) of
    numbers that add up to the desired outcome. Returns the numbers."""
    # Coming up with an algorithm that returns all possible combinations of n
    # in a list of numbers is fun, but not necessary as this is already
    # provided in the itertools module of the standard library.
    for number_combination in itertools.combinations(numbers, n):
        if sum(number_combination) == desired_outcome:
            return number_combination
    raise ValueError(f"No {n} numbers add up to {desired_outcome} in this "
                     f"list.")