def regions_overlap(region1, region2):
    """Determine if two regions have any overlap

    Returns True if any part of the first region overlaps any part of
    the second region (including one region being completely inside the
    other).

    Arguments:
      region1: tuple of numbers representing the limits of the first
        region, can be in any order e.g. (0,10) or (10,0)
      region2: tuple of numbers representing the limits of the second
        region.

    Returns:
      True if there is overlap, False otherwise.
    """
    if abs(region1[0] - region1[1]) > abs(region2[0] - region2[1]):
        wide, narrow = region1, region2
    else:
        wide, narrow = region2, region1
    if wide[0] < wide[1]:
        lower, upper = wide[0], wide[1]
    else:
        lower, upper = wide[1], wide[0]
    return lower <= narrow[0] and narrow[0] <= upper or lower <= narrow[1
        ] and narrow[1] <= upper
