function fn(arr = [‘a‘,‘b‘,‘c‘,‘d‘],index = 0){
    if(arr.length == 0 || index < 0){
        return
    }
    if(index == arr.length - 1){
        console.log(arr.toString())
    }else{
        for (let  i = index; i < arr.length; i++) {
            let temp = arr[i];
            arr[i] = arr[index];
            arr[index] = temp;
            fn(arr, index + 1);
            temp = arr[i];
            arr[i] = arr[index];
            arr[index] = temp;
        }
    }
}
原文:https://www.cnblogs.com/zhenjianyu/p/13851269.html