from typing import Iterable
from typing import Callable
from typing import Any
from typing import Generator


def argzip(sequence: Iterable[Callable], *args: Any) -> Generator:
    """
    Similar to zip, but instead of zipping iterables,
    It zips an argument(s) with all the values of the iterable.
    for example.
    >>> list(argzip([1,2,3,4], "number"))
    [(1, 'number'), (2, 'number'), (3, 'number'), (4, 'number')]

    >>> list(argzip([1,2,3,4], "number", "int"))
    [(1, 'number', 'int'), (2, 'number', 'int'), (3, 'number', 'int'), (4, 'number', 'int')]
    """
    return ((a, *args) for a in sequence)