def permuteRecursive(prefix, remaining):
    if remaining == []:
        return [prefix]
    result = []
    for n in remaining:
        copy = [e for e in remaining]
        copy.remove(n)
        result += permuteRecursive(prefix + [n], copy)
    return result

def permute(n):
    return permuteRecursive([],range(1, n+1))

print permute(3)