
    Given a student's current module number in their learning sequence, determine the next most challenging module by rearranging its digits to create the smallest possible number that is still larger than the current one. If no such rearrangement is possible, the student should remain at their current module level.
    

    
def rearrange_bigger(n):
    """
    Given a student's current module number in their learning sequence, determine the next most challenging module by rearranging its digits to create the smallest possible number that is still larger than the current one. If no such rearrangement is possible, the student should remain at their current module level.
    

    """
def rearrange_bigger(n):
    """
    Given a student's current module number in their learning sequence, determine the next most challenging module by rearranging its digits to create the smallest possible number that is still larger than the current one. If no such rearrangement is possible, the student should remain at their current module level.
    

    """
    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