disable permutative optimization, this makes this algorithm O(n) instead of NP