Skip to content

Anagram

anagram · word · validated

A text using exactly the letters of another, rearranged.

Provenance

  • Source: Attributed to Lycophron (3rd century BC); systematised by Oulipo
  • Attribution: traditional — classical or folk; no single origin to name
  • Checkability: source — decidable against the source text it was made from
  • Attested: codified — formulated as a rule by a tradition rather than declared by an author

Details

  • Kind: both
  • Languages: en, de, fr
  • Requires: tokens, fold_diacritics
  • Deterministic: yes
  • In other languages: Anagramm (de), Anagramme (fr)

Prompt hint

Rearrange all the letters of the source phrase into a new phrase, using each exactly once.

Parameters

Name Type Default Description
allow_subset boolean False Accept a transposal — a candidate built from some of the source's letters rather than all of them. Surplus letters are refused either way.
fold_diacritics boolean True Treat accented letters as their base letter, and ß as ss.
source string — The text this one was made from.

Examples

listen-silent

en — this text satisfies the procedure.

silent

Parameters: source='listen'

Source: Traditional; the standard English example

not-an-anagram

en — this text does not satisfy the procedure.

silence

Parameters: source='listen'

Source: constructed counterexample

chien-niche

fr — this text satisfies the procedure.

niche

Parameters: source='chien'

Source: constructed example; this is what apply("anagram", "chien", lang="fr") returns now that the French pack carries lexicon.graded_words — the checker already ran in French, and this is the generation the capability adds.

une-lettre-en-trop

fr — this text does not satisfy the procedure.

chiens

Parameters: source='chien'

Source: constructed counterexample; chiens carries a letter chien does not

lebensmittel-mitbestellen

de — this text satisfies the procedure.

mitbestellen

Parameters: source='Lebensmittel'

Source: generated by this row's own apply and checked back, 2026-09-04. A single word rearranging into a single word, which is the case worth leading with.

taschenrechner-arche-sternchen

de — this text satisfies the procedure.

arche sternchen

Parameters: source='Taschenrechner'

Source: generated by apply and checked back; the row German anagram exists for

not-an-anagram-de

de — this text does not satisfy the procedure.

esel lese

Parameters: source='Lebensmittel'

Source: constructed counterexample; the letters do not cover the source at all, so this fails on missing_letter and surplus_letter rather than on the lexicon

right-anagram-wrong-source-de

de — this text does not satisfy the procedure.

mitbestellen

Parameters: source='Taschenrechner'

Source: constructed counterexample; a real German anagram, checked against a source it is not an anagram of — the letters are the whole verdict here