Here is my solution...
Code: Select all
from itertools import combinations_with_replacements
def build_tablebase_names():
letters = ['', 'Q', 'R', 'B', 'N', 'P']; candidates = []
for LHS in combinations_with_replacement(letters, 4):
for RHS in combinations_with_replacement(letters, 4):
candidates.append('K{}vK{}'.format(''.join(LHS), ''.join(RHS)))
def valid_filename(name):
for i, letter in enumerate(letters[1:]):
name = name.replace(letter, str(9 - i))
lhs, rhs = name.replace('K', '9').split('v')
return 2 < len(lhs + rhs) <= 6 and int(lhs) >= int(rhs)
return list(filter(valid_filename, candidates))