from typing import Iterable
from typing import Tuple
import itertools


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