Такое ощущение будто в .map асинхронная функция не дожидается своих await, а сразу возвращает промис.
const arr = await Promise.all([1, 2, 3, 4, 5].map(async (value) => 2 * await asyncThing(value)));
console.log(arr); // [2, 4, 6, 8, 10]
function Generate(s) {
if(s.length === 1) return [s];
const ans = [];
const last = s[s.length - 1];
s = s.slice(0, s.length - 1);
const prev = Generate(s);
for (const entry of prev) {
ans.push(entry + last);
ans.push(entry + '.' + last);
}
return ans;
}