
    Given a delivery route number where each digit represents a delivery zone segment, find the next available route number that can be formed by rearranging these zone segments while ensuring it's the smallest possible number larger than the original route. If no such route number exists by rearranging the digits, return -1.
    

    
def rearrange_bigger(n):
    """
    Given a delivery route number where each digit represents a delivery zone segment, find the next available route number that can be formed by rearranging these zone segments while ensuring it's the smallest possible number larger than the original route. If no such route number exists by rearranging the digits, return -1.
    

    """
def rearrange_bigger(n):
    """
    Given a delivery route number where each digit represents a delivery zone segment, find the next available route number that can be formed by rearranging these zone segments while ensuring it's the smallest possible number larger than the original route. If no such route number exists by rearranging the digits, return -1.
    

    """
    nums = list(str(n))
    for i in range(len(nums) - 2, -1, -1):
        if nums[i] < nums[i + 1]:
            z = nums[i:]
            y = min(filter(lambda x: x > z[0], z))
            z.remove(y)
            z.sort()
            nums[i:] = [y] + z
            return int(''.join(nums))
    return False