简单粗暴的用js实现下,先把一头一尾拿出来,剩余的从替换一个到替换它的长度个,用两个循环,外层循环控制替换个数,内层进行替换,最后再把替换好的加上首尾就可以了。
function result(str){
	var strArr=str.split('');
	var res=[];
	var first=strArr.shift();
	var last=strArr.pop();
	for(var i=1;i<=strArr.length;i++){ //换i个
		for(var j=0;j<=strArr.length-i;j++){
			var temp=strArr.slice(0);
			temp.splice(j,i,i);//删除并替换
			res.push(temp)
		}
	}
	for(var k=0;k<res.length;k++){
		res[k].unshift(first);
		res[k].push(last);
		console.log(res[k].join(''));
	}
}