<script>
//递归+插入
let arr=[1,2,3];
let res=(function(n)
{
if(n==1)
{
return [[arr[0]]];
}
else
{
let res1=arguments.callee(n-1);
let res2=[];
for(let r of res1)
{
for(let i=0;i<=r.length;i++)
{
res2.push(r.slice(0,i).concat([arr[n-1]],r.slice(i)));
}
}
return res2;
}
})(arr.length);
for(let r of res)
{
document.write(`${r}<br />`);
}
document.write(`total3=${res.length}<br /><br />`);
</script>

//递归+插入
let arr=[1,2,3];
let res=(function(n)
{
if(n==1)
{
return [[arr[0]]];
}
else
{
let res1=arguments.callee(n-1);
let res2=[];
for(let r of res1)
{
for(let i=0;i<=r.length;i++)
{
res2.push(r.slice(0,i).concat([arr[n-1]],r.slice(i)));
}
}
return res2;
}
})(arr.length);
for(let r of res)
{
document.write(`${r}<br />`);
}
document.write(`total3=${res.length}<br /><br />`);
</script>
