const arr = [['A','B'],['a','b'],[1,2]] function descales (args) { return args.reduce((result, curArr) => { const newResult = [] result.forEach((resultItem) => { curArr.forEach((item) => { newResult.push(resultItem.concat([item])) }) }) console.log(newResult) return newResult },[[]]).map((arg) => arg.join('')) } descales(arr)