def find_subnet(network, reserved):
    """Find biggest sub-network which does not overlap with any of the reserved networks/addresses"""
    for prefix_len in range(network.prefixlen+1, network.max_prefixlen-1):
        for subnet in network.subnets(new_prefix=prefix_len):
            if all(not subnet.overlaps(x) for x in reserved):
                return subnet