JSFiddle - React, Tailwind, and code Playground

JavaScript

function allPossibleCombo(letters, curString){ 
	if(memo[curString]){return memo[curString];}
  var numberOfLs = 0;  
  for(var j = 0; j < curString.length; j++){
    if(curString[j] == 'l'){numberOfLs += 1;}
  }
    
  if(numberOfLs >= 2){return 0;}
	if(curString.includes('aaa')){return 0;} 
  if(curString.length == 30){return 1;}
  var count = 0;
  
  for(var i = 0; i < letters.length; i++){
  	count += allPossibleCombo(letters, curString + letters[i], memo);
  }
  memo[curString] = count;

  return count;
}
var memo = {};
console.log(allPossibleCombo(['a','o','l'], '', memo));