Python permutations, variable survives recursion

I have a problem with my code. Variable "used" survives recursion (it doesn't return to before state, but stays the same). I understand this is common for default variable, however, "used" isn't default now, can somebody explain how does it happen?

newArray = []


def permutations(used, default=None):
    if default is None:
        default = used
        used = []
    if len(used) == len(default):
        newArray.append(used)
        return
    else:
        for i in range(len(default)):
            if default[i] in used:
            continue
        used.append(default[i])
        permutations(used, default)

print(permutations(['1', '2', '3']))