Modern SAT solvers: fast, neat and underused
Since I cannot find it mentioned in the OP nor in the comments: if you want to experiment with SAT, the pysat package might be a pretty good start.https://github.com/pysathq/pysatThe API is not exactly Pythonic (numpy/scipy/opencv style) but it's loaded with features.