JavaScript (Node.js), (削除) 80 73 (削除ここまで) 7368 bytes
f=([x,...y])=>x?f,g=c=>f(y).map(z=>x+zz=>c+z).concat(x=='v')=>x?fg(yx).mapconcat(z=>'^'+z)x>'a'?g`^`:[]):[y]
JavaScript (Node.js), (削除) 80 (削除ここまで) 73 bytes
f=([x,...y])=>x?f(y).map(z=>x+z).concat(x=='v'?f(y).map(z=>'^'+z):[]):[y]
JavaScript (Node.js), (削除) 80 73 (削除ここまで) 68 bytes
f=([x,...y],g=c=>f(y).map(z=>c+z))=>x?g(x).concat(x>'a'?g`^`:[]):[y]
JavaScript (Node.js), 80(削除) 80 (削除ここまで) 73 bytes
f=x=>x?(r=ff=(x[x,.slice(1)..y])=>x?f(y).map(y=>x[0]+yz=>x+z).concat(x[0]=='v'x=='v'?rf(y).map(y=>'^'+yz=>'^'+z):[]):[x][y]
JavaScript (Node.js), 80 bytes
f=x=>x?(r=f(x.slice(1))).map(y=>x[0]+y).concat(x[0]=='v'?r.map(y=>'^'+y):[]):[x]
JavaScript (Node.js), (削除) 80 (削除ここまで) 73 bytes
f=([x,...y])=>x?f(y).map(z=>x+z).concat(x=='v'?f(y).map(z=>'^'+z):[]):[y]
JavaScript (Node.js), 80 bytes
f=x=>x?(r=f(x.slice(1))).map(y=>x[0]+y).concat(x[0]=='v'?r.map(y=>'^'+y):[]):[x]