I didn't actually try but this code doesn't look right:
region = ''.join([chr((seek_region // 1000) // 26 + 65), chr((seek_region // 1000) % 26 + 65)])
I believe it should be:
region = ''.join([chr((seek_region - 1000) // 26 + 65), chr((seek_region - 1000) % 26 + 65)])
which makes more sense and is what the C code does:
region->region[0] = (char) ((seek_region - 1000)/26 + 65);
region->region[1] = (char) ((seek_region - 1000)%26 + 65);
I didn't actually try but this code doesn't look right: region = ''.join([chr((seek_region // 1000) // 26 + 65), chr((seek_region // 1000) % 26 + 65)])
I believe it should be: region = ''.join([chr((seek_region - 1000) // 26 + 65), chr((seek_region - 1000) % 26 + 65)])
which makes more sense and is what the C code does: region->region[0] = (char) ((seek_region - 1000)/26 + 65); region->region[1] = (char) ((seek_region - 1000)%26 + 65);