don't check after try xrange(1, 10), calculate candidates instead
optimize: always find easier slot first