If you want to try more than 10 bins you can use the idea from one of your other examples... convert base NUM_BINS to base 10.
NUM_BINS = 20
def build_state(features):
val = NUM_BINS3 * features[3] + NUM_BINS2 * features[2] + NUM_BINS*features[1]+features[0]