@jremington's serial only code is a faithful version of the hackster code and produces the 7040 solutions including the rotations and reflections of the 880 'unique' solutions:
I meant that if you had a method to generate set of 880 unique solutions as mentioned in #1, and then applied the rotations and reflections to get the 7040 as per #13, it could be quicker than exhaustively searching the solution space, discarding the reflections and rotations to get to the unique 880, (as in the #31 code) and then applying the rotations and reflections to the 880.
There might be some math-graph-theory way of generating the 880 solutions as some permutation of operations on groups or some such magic, but the exhaustive search (with filter) is not that solution.
I have not tested them either, but after I un-commented the comments in the original, and adjusted the senses of the if statements to match @david_2018's #22 comments, It spat out the expected 880 solutions.
Double checking it's output for rotations and reflections would take more coding than would fit into the Uno.