import ipaddress


def get_all_host(ip_network):
    """Given a network, return the list of usable IP addresses.

    Args:
        ip_network (str): An IP network in string format that is able to be converted by `ipaddress` library.

    Returns:
        generator: Generator of usable IP Addresses within network.

    Example:
        >>> from netutils.ip import get_all_host
        >>> print(list(get_all_host("10.100.100.0/29")))
        ['10.100.100.1', '10.100.100.2', '10.100.100.3', '10.100.100.4', '10.100.100.5', '10.100.100.6']
        >>>
    """
    return (str(ip) for ip in ipaddress.ip_network(ip_network).hosts())