I have a union of 3 possible strings:
type AllowedWords = "one" | "two" | "three";
I want to create a template literal type that allows any of those 3 words in any order, but each member should only be included up to once. For example, this should be an exhaustive list of all possible matches:
onetwothreeonetwoonethreetwoonetwothreethreeonethreetwoonetwothreeonethreetwotwoonethreetwothreeonethreeonetwothreetwoone
How can I define a type that represents that?