SOURCE

let result = [];

function backTrace(nums, trace) {
    if(nums.length == trace.length) {
        result.push(trace.slice(0));
        return 
    }
    for(let index in nums) {
        let num = nums[index];
        let numInTrace = false
        for(let j in trace) {
            if( num == trace[j]) {
                numInTrace = true
            }
        }
        if(numInTrace) continue
        trace.push(num)
        backTrace(nums, trace)
        trace.pop()
    }
}

function permut(nums) {
    backTrace(nums, []);
    return result;
}

permut([1,2])

console.log(result)
console 命令行工具 X clear

                    
>
console