JSFiddle - React, Tailwind, and code Playground
JavaScript
var nextKeysMap = {
1: [2, 5],
2: [3, 4],
5: [6, 7],
7: [8],
8: [9]
};
var fullPaths = [];
generateFullPaths([1], 1);
function generateFullPaths(partialPath, currentKey) {
if(currentKey in nextKeysMap) {
var nextKeys = nextKeysMap[currentKey];
for (var i = 0; i < nextKeys.length; i++) {
var nextKey = nextKeys[i];
generateFullPaths(partialPath.concat(nextKey), nextKey);
}
} else {
fullPaths.push(partialPath);
}
}
for(var i = 0; i < fullPaths.length; i++) {
console.log(fullPaths[i].join(","));
}