Solving Quartiles with Python (`itertools.permutations`)
Solving Quartiles with Python
Quartiles is a fun game that was introduced to Apple's News+ (https://www.apple.com/newsroom/2024/05/apple-news-plus-introduces-quartiles-a-new-game-and-offline-mode-for-subscribers/). It involves matching tiles containing letters to words. While fun to play, it's also fun to solve with Python. This blog post will introduce how to solve the game with Python.
If you haven't been using Astral's uv package, check it out. Otherwise use Python's pip to install nltk to allow finding the words in English. This can be done by either:
uv add nltk
uv add nltk
or
pip install nltk
Now for the fun part!
Create a script, such as main.py to include your setup.
# main.py
from itertools import permutations
tiles = ['ary', 'tion', 'rou', 'ed', 'pes', 'gh', 'ant', 'tig', 'des', 'ta', 'ly', 'olu', 'ro', 'ur', 'pi', 'ht', 'res', 'cab', 'hous', 'rev']
combinations_list = list(permutations(tiles, 4))
combinations_list.extend(list(permutations(tiles, 3)))
combinations_list.extend(list(permutations(tiles, 2)))
combinations_list.extend(list(permutations(tiles, 1)))
if __name__ == "__main__":
import nltk
from ntlk.corpus import words
nltk.download('words')
english_words = set(words.words())
valid_words = []
for combo in combinations_list:
candidate_word = ''.join(combo).lower()
if candidate_word in english_words:
valid_words.append(candidate_word)
print(valid_words)
Python's
itertools.combinations will find all combinations of the tiles for 4 combinations, 3 combinations, 2 combinations, or a single tile that is a word.
And that's how you use Python to solve the Quartiles game!