The Wikipedia article goes on to discuss interesting aspects of how the book was translated in different languages, with different self-imposed constraints.
That said, I think the most impressive achievement is the English translation of the French novel. Writing an original constrained novel is hard enough, but translating one means you can’t just steer the story wherever you like. You have to preserve the plot, tone, and themes of the original, all while respecting a completely different set of linguistic limitations. That’s a remarkable balancing act.
What is almost as impressive is that these novels (at least Perec's) have been translated to other languages.
But really impressive for the time.
(Just tried it, "write a short story of 12 sentences without one occurence of the letter e" - it had 5 es.)
For example, it may start like this "This is a way to solv-", or "This is th-"
One beam could be "This is a way to solv-". With no obvious "good" next token. Another beam could be "This way is solv-". With "ing" as the obvious next token.
It will select the best beam for the output.
Let's say I prompt my LLM to exclusively use the letters 'aefghilmnoprst' and the LLM generates "that's one small step for a man, one giant leap for man-"[1]. Since the next token with the highest probability ("-kind") isn't allowed, it may very well be that the next appropriate word is something really generic or, if your grammar is really restrictive, straight up nonsense because nothing fits. And then there's pathological stuff like "... one giant leap for man, one small step for a man, one giant leap for man- ...".
[1] Toy example - I'm sure these specific rules are not super restrictive and "management" is right there.
What I will add is that constrained generation is supported by the major inference engine like llama.cpp, vllm and the likes, so what you are describing is actually trivial on locally hosted models, you just have to provide a regex that prevent them to use the letter 'e' in the output.
There was a post here a little while back asking AI models to count the number of Rs in the word raspberry and most failed.
https://arxiv.org/abs/2306.15926
https://github.com/Hellisotherpeople/Constrained-Text-Genera...
Here's a "What if?" on a very similar issue that uses Markov chains: https://what-if.xkcd.com/75/