Skip to content

Instantly share code, notes, and snippets.

@jschaf
Created February 29, 2016 02:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jschaf/5ff3afb919a39798c56c to your computer and use it in GitHub Desktop.
Save jschaf/5ff3afb919a39798c56c to your computer and use it in GitHub Desktop.
Generate combinations of numbers
50 4 - 6 75 - 100 + 25 * +
50 4 - 6 75 100 - - 25 * +
50 4 6 75 - 100 + 25 * - -
50 4 6 75 100 - - 25 * - -
75 4 - 6 50 100 25 - + * +
75 4 - 6 50 100 + 25 - * +
75 4 6 50 100 25 - + * - -
75 4 6 50 100 + 25 - * - -
50 4 75 6 100 + - 25 * + -
50 4 75 6 - 100 - 25 * + -
50 4 - 75 6 100 + - 25 * -
50 4 - 75 6 - 100 - 25 * -
6 50 75 + * 4 - 100 25 - +
6 50 75 + * 4 100 - 25 + -
6 50 75 + * 4 - 100 + 25 -
6 50 75 + * 4 100 25 - - -
6 50 75 + * 4 100 - - 25 -
6 75 50 + * 4 - 100 25 - +
6 75 50 + * 4 100 - 25 + -
6 75 50 + * 4 - 100 + 25 -
6 75 50 + * 4 100 25 - - -
6 75 50 + * 4 100 - - 25 -
50 75 + 6 * 4 - 100 25 - +
50 75 + 6 * 4 100 - 25 + -
50 75 + 6 * 4 - 100 + 25 -
50 75 + 6 * 4 100 25 - - -
50 75 + 6 * 4 100 - - 25 -
75 50 + 6 * 4 - 100 25 - +
75 50 + 6 * 4 100 - 25 + -
75 50 + 6 * 4 - 100 + 25 -
75 50 + 6 * 4 100 25 - - -
75 50 + 6 * 4 100 - - 25 -
50 4 - 6 100 75 - + 25 * +
50 4 - 6 100 + 75 - 25 * +
50 4 6 100 75 - + 25 * - -
50 4 6 100 + 75 - 25 * - -
100 4 - 6 50 75 + * 25 - +
100 4 6 50 75 + * - 25 + -
100 4 - 6 50 75 + * + 25 -
100 4 6 50 75 + * 25 - - -
100 4 6 50 75 + * - - 25 -
50 4 - 100 6 75 - + 25 * +
50 4 - 100 6 + 75 - 25 * +
50 4 100 6 75 - + 25 * - -
50 4 100 6 + 75 - 25 * - -
75 4 - 6 100 50 25 - + * +
75 4 - 6 100 50 + 25 - * +
75 4 6 100 50 25 - + * - -
75 4 6 100 50 + 25 - * - -
100 4 - 6 75 50 + * 25 - +
100 4 6 75 50 + * - 25 + -
100 4 - 6 75 50 + * + 25 -
100 4 6 75 50 + * 25 - - -
100 4 6 75 50 + * - - 25 -
50 4 75 100 - 6 25 + * + -
50 4 75 100 6 + - 25 * + -
50 4 75 100 - 6 - 25 * + -
50 4 - 75 100 - 6 25 + * -
50 4 - 75 100 6 + - 25 * -
50 4 - 75 100 - 6 - 25 * -
50 4 - 100 75 - 6 25 + * +
50 4 - 100 75 - 6 + 25 * +
50 4 - 100 75 6 - - 25 * +
50 4 100 75 - 6 25 + * - -
50 4 100 75 - 6 + 25 * - -
50 4 100 75 6 - - 25 * - -
100 4 - 50 75 + 6 * 25 - +
100 4 50 75 + 6 * - 25 + -
100 4 - 50 75 + 6 * + 25 -
100 4 50 75 + 6 * 25 - - -
100 4 50 75 + 6 * - - 25 -
100 4 - 75 50 + 6 * 25 - +
100 4 75 50 + 6 * - 25 + -
100 4 - 75 50 + 6 * + 25 -
100 4 75 50 + 6 * 25 - - -
100 4 75 50 + 6 * - - 25 -
6 50 75 + * 100 4 25 + - +
6 50 75 + * 100 4 - 25 - +
6 50 75 + * 100 + 4 25 + -
6 50 75 + * 100 4 - + 25 -
6 50 75 + * 100 + 4 - 25 -
6 75 50 + * 100 4 25 + - +
6 75 50 + * 100 4 - 25 - +
6 75 50 + * 100 + 4 25 + -
6 75 50 + * 100 4 - + 25 -
6 75 50 + * 100 + 4 - 25 -
50 75 + 6 * 100 4 25 + - +
50 75 + 6 * 100 4 - 25 - +
50 75 + 6 * 100 + 4 25 + -
50 75 + 6 * 100 4 - + 25 -
50 75 + 6 * 100 + 4 - 25 -
75 50 + 6 * 100 4 25 + - +
75 50 + 6 * 100 4 - 25 - +
75 50 + 6 * 100 + 4 25 + -
75 50 + 6 * 100 4 - + 25 -
75 50 + 6 * 100 + 4 - 25 -
100 6 50 75 + * 4 25 + - +
100 6 50 75 + * 4 - 25 - +
100 6 50 75 + * + 4 25 + -
100 6 50 75 + * 4 - + 25 -
100 6 50 75 + * + 4 - 25 -
100 6 75 50 + * 4 25 + - +
100 6 75 50 + * 4 - 25 - +
100 6 75 50 + * + 4 25 + -
100 6 75 50 + * 4 - + 25 -
100 6 75 50 + * + 4 - 25 -
100 50 75 + 6 * 4 25 + - +
100 50 75 + 6 * 4 - 25 - +
100 50 75 + 6 * + 4 25 + -
100 50 75 + 6 * 4 - + 25 -
100 50 75 + 6 * + 4 - 25 -
100 75 50 + 6 * 4 25 + - +
100 75 50 + 6 * 4 - 25 - +
100 75 50 + 6 * + 4 25 + -
100 75 50 + 6 * 4 - + 25 -
100 75 50 + 6 * + 4 - 25 -
75 4 - 6 50 25 - 100 + * +
75 4 - 6 50 25 100 - - * +
75 4 6 50 25 - 100 + * - -
75 4 6 50 25 100 - - * - -
6 50 75 + * 4 25 + - 100 +
6 50 75 + * 4 - 25 - 100 +
6 50 75 + * 4 25 100 - + -
6 50 75 + * 4 25 + 100 - -
6 50 75 + * 4 - 25 100 - -
6 75 50 + * 4 25 + - 100 +
6 75 50 + * 4 - 25 - 100 +
6 75 50 + * 4 25 100 - + -
6 75 50 + * 4 25 + 100 - -
6 75 50 + * 4 - 25 100 - -
50 75 + 6 * 4 25 + - 100 +
50 75 + 6 * 4 - 25 - 100 +
50 75 + 6 * 4 25 100 - + -
50 75 + 6 * 4 25 + 100 - -
50 75 + 6 * 4 - 25 100 - -
75 50 + 6 * 4 25 + - 100 +
75 50 + 6 * 4 - 25 - 100 +
75 50 + 6 * 4 25 100 - + -
75 50 + 6 * 4 25 + 100 - -
75 50 + 6 * 4 - 25 100 - -
50 4 6 25 + 75 100 - * + -
50 4 - 6 25 + 75 100 - * -
50 4 - 25 6 75 - 100 + * +
50 4 - 25 6 75 100 - - * +
50 4 25 6 + 75 100 - * + -
50 4 25 6 75 - 100 + * - -
50 4 25 6 75 100 - - * - -
50 4 - 25 6 + 75 100 - * -
75 4 6 25 50 100 + - * + -
75 4 6 25 50 - 100 - * + -
75 4 - 6 25 50 100 + - * -
75 4 - 6 25 50 - 100 - * -
50 4 25 75 6 100 + - * + -
50 4 25 75 6 - 100 - * + -
50 4 - 25 75 6 100 + - * -
50 4 - 25 75 6 - 100 - * -
6 50 75 + * 25 4 + - 100 +
6 50 75 + * 25 - 4 - 100 +
6 50 75 + * 25 4 100 - + -
6 50 75 + * 25 4 + 100 - -
6 50 75 + * 25 - 4 100 - -
6 75 50 + * 25 4 + - 100 +
6 75 50 + * 25 - 4 - 100 +
6 75 50 + * 25 4 100 - + -
6 75 50 + * 25 4 + 100 - -
6 75 50 + * 25 - 4 100 - -
50 75 + 6 * 25 4 + - 100 +
50 75 + 6 * 25 - 4 - 100 +
50 75 + 6 * 25 4 100 - + -
50 75 + 6 * 25 4 + 100 - -
50 75 + 6 * 25 - 4 100 - -
75 50 + 6 * 25 4 + - 100 +
75 50 + 6 * 25 - 4 - 100 +
75 50 + 6 * 25 4 100 - + -
75 50 + 6 * 25 4 + 100 - -
75 50 + 6 * 25 - 4 100 - -
50 4 - 6 25 + 100 75 - * +
50 4 6 25 + 100 75 - * - -
50 4 - 25 6 100 75 - + * +
50 4 - 25 6 100 + 75 - * +
50 4 - 25 6 + 100 75 - * +
50 4 25 6 100 75 - + * - -
50 4 25 6 100 + 75 - * - -
50 4 25 6 + 100 75 - * - -
100 4 25 + - 6 50 75 + * +
100 4 - 25 - 6 50 75 + * +
100 4 25 6 50 75 + * - + -
100 4 25 + 6 50 75 + * - -
100 4 - 25 6 50 75 + * - -
100 25 4 + - 6 50 75 + * +
100 25 - 4 - 6 50 75 + * +
100 25 4 6 50 75 + * - + -
100 25 4 + 6 50 75 + * - -
100 25 - 4 6 50 75 + * - -
50 4 - 25 100 6 75 - + * +
50 4 - 25 100 6 + 75 - * +
50 4 25 100 6 75 - + * - -
50 4 25 100 6 + 75 - * - -
6 50 100 25 - + * 4 - 75 +
6 50 100 + 25 - * 4 - 75 +
6 50 100 25 - + * 4 75 - -
6 50 100 + 25 - * 4 75 - -
6 100 50 25 - + * 4 - 75 +
6 100 50 + 25 - * 4 - 75 +
6 100 50 25 - + * 4 75 - -
6 100 50 + 25 - * 4 75 - -
6 50 25 - 100 + * 4 - 75 +
6 50 25 100 - - * 4 - 75 +
6 50 25 - 100 + * 4 75 - -
6 50 25 100 - - * 4 75 - -
6 100 25 - 50 + * 4 - 75 +
6 100 25 50 - - * 4 - 75 +
6 100 25 - 50 + * 4 75 - -
6 100 25 50 - - * 4 75 - -
50 100 25 - + 6 * 4 - 75 +
50 100 + 25 - 6 * 4 - 75 +
50 100 25 - + 6 * 4 75 - -
50 100 + 25 - 6 * 4 75 - -
100 50 25 - + 6 * 4 - 75 +
100 50 + 25 - 6 * 4 - 75 +
100 50 25 - + 6 * 4 75 - -
100 50 + 25 - 6 * 4 75 - -
50 25 - 100 + 6 * 4 - 75 +
50 25 100 - - 6 * 4 - 75 +
50 25 - 100 + 6 * 4 75 - -
50 25 100 - - 6 * 4 75 - -
100 25 - 50 + 6 * 4 - 75 +
100 25 50 - - 6 * 4 - 75 +
100 25 - 50 + 6 * 4 75 - -
100 25 50 - - 6 * 4 75 - -
75 4 - 6 100 25 - 50 + * +
75 4 - 6 100 25 50 - - * +
75 4 6 100 25 - 50 + * - -
75 4 6 100 25 50 - - * - -
75 4 6 25 100 50 + - * + -
75 4 6 25 100 - 50 - * + -
75 4 - 6 25 100 50 + - * -
75 4 - 6 25 100 - 50 - * -
100 4 25 + - 6 75 50 + * +
100 4 - 25 - 6 75 50 + * +
100 4 25 6 75 50 + * - + -
100 4 25 + 6 75 50 + * - -
100 4 - 25 6 75 50 + * - -
100 25 4 + - 6 75 50 + * +
100 25 - 4 - 6 75 50 + * +
100 25 4 6 75 50 + * - + -
100 25 4 + 6 75 50 + * - -
100 25 - 4 6 75 50 + * - -
6 75 - 100 + 25 * 4 - 50 +
6 75 100 - - 25 * 4 - 50 +
6 75 - 100 + 25 * 4 50 - -
6 75 100 - - 25 * 4 50 - -
6 100 75 - + 25 * 4 - 50 +
6 100 + 75 - 25 * 4 - 50 +
6 100 75 - + 25 * 4 50 - -
6 100 + 75 - 25 * 4 50 - -
100 6 75 - + 25 * 4 - 50 +
100 6 + 75 - 25 * 4 - 50 +
100 6 75 - + 25 * 4 50 - -
100 6 + 75 - 25 * 4 50 - -
100 75 - 6 25 + * 4 - 50 +
100 75 - 6 + 25 * 4 - 50 +
100 75 6 - - 25 * 4 - 50 +
100 75 - 6 25 + * 4 50 - -
100 75 - 6 + 25 * 4 50 - -
100 75 6 - - 25 * 4 50 - -
25 6 75 - 100 + * 4 - 50 +
25 6 75 100 - - * 4 - 50 +
25 6 75 - 100 + * 4 50 - -
25 6 75 100 - - * 4 50 - -
6 25 + 100 75 - * 4 - 50 +
6 25 + 100 75 - * 4 50 - -
25 6 100 75 - + * 4 - 50 +
25 6 100 + 75 - * 4 - 50 +
25 6 + 100 75 - * 4 - 50 +
25 6 100 75 - + * 4 50 - -
25 6 100 + 75 - * 4 50 - -
25 6 + 100 75 - * 4 50 - -
25 100 6 75 - + * 4 - 50 +
25 100 6 + 75 - * 4 - 50 +
25 100 6 75 - + * 4 50 - -
25 100 6 + 75 - * 4 50 - -
100 75 - 25 6 + * 4 - 50 +
100 75 - 25 6 + * 4 50 - -
25 100 75 - 6 + * 4 - 50 +
25 100 75 6 - - * 4 - 50 +
25 100 75 - 6 + * 4 50 - -
25 100 75 6 - - * 4 50 - -
50 4 75 100 - 25 6 + * + -
50 4 - 75 100 - 25 6 + * -
75 4 - 50 100 25 - + 6 * +
75 4 - 50 100 + 25 - 6 * +
75 4 50 100 25 - + 6 * - -
75 4 50 100 + 25 - 6 * - -
50 4 - 100 75 - 25 6 + * +
50 4 100 75 - 25 6 + * - -
75 4 - 100 50 25 - + 6 * +
75 4 - 100 50 + 25 - 6 * +
75 4 100 50 25 - + 6 * - -
75 4 100 50 + 25 - 6 * - -
75 4 - 50 25 - 100 + 6 * +
75 4 - 50 25 100 - - 6 * +
75 4 50 25 - 100 + 6 * - -
75 4 50 25 100 - - 6 * - -
50 4 25 75 100 6 + - * + -
50 4 25 75 100 - 6 - * + -
50 4 - 25 75 100 6 + - * -
50 4 - 25 75 100 - 6 - * -
75 4 25 50 100 + - 6 * + -
75 4 25 50 - 100 - 6 * + -
75 4 - 25 50 100 + - 6 * -
75 4 - 25 50 - 100 - 6 * -
50 4 - 25 100 75 - 6 + * +
50 4 - 25 100 75 6 - - * +
50 4 25 100 75 - 6 + * - -
50 4 25 100 75 6 - - * - -
100 4 25 + - 50 75 + 6 * +
100 4 - 25 - 50 75 + 6 * +
100 4 25 50 75 + 6 * - + -
100 4 25 + 50 75 + 6 * - -
100 4 - 25 50 75 + 6 * - -
100 25 4 + - 50 75 + 6 * +
100 25 - 4 - 50 75 + 6 * +
100 25 4 50 75 + 6 * - + -
100 25 4 + 50 75 + 6 * - -
100 25 - 4 50 75 + 6 * - -
75 4 - 100 25 - 50 + 6 * +
75 4 - 100 25 50 - - 6 * +
75 4 100 25 - 50 + 6 * - -
75 4 100 25 50 - - 6 * - -
75 4 25 100 50 + - 6 * + -
75 4 25 100 - 50 - 6 * + -
75 4 - 25 100 50 + - 6 * -
75 4 - 25 100 - 50 - 6 * -
100 4 25 + - 75 50 + 6 * +
100 4 - 25 - 75 50 + 6 * +
100 4 25 75 50 + 6 * - + -
100 4 25 + 75 50 + 6 * - -
100 4 - 25 75 50 + 6 * - -
100 25 4 + - 75 50 + 6 * +
100 25 - 4 - 75 50 + 6 * +
100 25 4 75 50 + 6 * - + -
100 25 4 + 75 50 + 6 * - -
100 25 - 4 75 50 + 6 * - -
6 50 75 + * 100 25 4 + - +
6 50 75 + * 100 25 - 4 - +
6 50 75 + * 100 + 25 4 + -
6 50 75 + * 100 25 - + 4 -
6 50 75 + * 100 + 25 - 4 -
50 6 75 - 100 + 25 * 4 - +
50 6 75 100 - - 25 * 4 - +
50 6 75 - 100 + 25 * + 4 -
50 6 75 100 - - 25 * + 4 -
6 75 50 + * 100 25 4 + - +
6 75 50 + * 100 25 - 4 - +
6 75 50 + * 100 + 25 4 + -
6 75 50 + * 100 25 - + 4 -
6 75 50 + * 100 + 25 - 4 -
75 6 50 100 25 - + * 4 - +
75 6 50 100 + 25 - * 4 - +
75 6 50 100 25 - + * + 4 -
75 6 50 100 + 25 - * + 4 -
50 75 + 6 * 100 25 4 + - +
50 75 + 6 * 100 25 - 4 - +
50 75 + 6 * 100 + 25 4 + -
50 75 + 6 * 100 25 - + 4 -
50 75 6 100 + - 25 * 4 + -
50 75 6 - 100 - 25 * 4 + -
50 75 + 6 * 100 + 25 - 4 -
50 75 6 100 + - 25 * - 4 -
50 75 6 - 100 - 25 * - 4 -
75 50 + 6 * 100 25 4 + - +
75 50 + 6 * 100 25 - 4 - +
75 50 + 6 * 100 + 25 4 + -
75 50 + 6 * 100 25 - + 4 -
75 50 + 6 * 100 + 25 - 4 -
50 6 100 75 - + 25 * 4 - +
50 6 100 + 75 - 25 * 4 - +
50 6 100 75 - + 25 * + 4 -
50 6 100 + 75 - 25 * + 4 -
100 6 50 75 + * 25 4 + - +
100 6 50 75 + * 25 - 4 - +
100 6 50 75 + * + 25 4 + -
100 6 50 75 + * 25 - + 4 -
100 6 50 75 + * + 25 - 4 -
50 100 6 75 - + 25 * 4 - +
50 100 6 + 75 - 25 * 4 - +
50 100 6 75 - + 25 * + 4 -
50 100 6 + 75 - 25 * + 4 -
75 6 100 50 25 - + * 4 - +
75 6 100 50 + 25 - * 4 - +
75 6 100 50 25 - + * + 4 -
75 6 100 50 + 25 - * + 4 -
100 6 75 50 + * 25 4 + - +
100 6 75 50 + * 25 - 4 - +
100 6 75 50 + * + 25 4 + -
100 6 75 50 + * 25 - + 4 -
100 6 75 50 + * + 25 - 4 -
50 75 100 - 6 25 + * 4 + -
50 75 100 6 + - 25 * 4 + -
50 75 100 - 6 - 25 * 4 + -
50 75 100 - 6 25 + * - 4 -
50 75 100 6 + - 25 * - 4 -
50 75 100 - 6 - 25 * - 4 -
50 100 75 - 6 25 + * 4 - +
50 100 75 - 6 + 25 * 4 - +
50 100 75 6 - - 25 * 4 - +
50 100 75 - 6 25 + * + 4 -
50 100 75 - 6 + 25 * + 4 -
50 100 75 6 - - 25 * + 4 -
100 50 75 + 6 * 25 4 + - +
100 50 75 + 6 * 25 - 4 - +
100 50 75 + 6 * + 25 4 + -
100 50 75 + 6 * 25 - + 4 -
100 50 75 + 6 * + 25 - 4 -
100 75 50 + 6 * 25 4 + - +
100 75 50 + 6 * 25 - 4 - +
100 75 50 + 6 * + 25 4 + -
100 75 50 + 6 * 25 - + 4 -
100 75 50 + 6 * + 25 - 4 -
6 50 75 + * 25 - 100 4 - +
6 50 75 + * 25 100 - 4 + -
6 50 75 + * 25 - 100 + 4 -
6 50 75 + * 25 100 4 - - -
6 50 75 + * 25 100 - - 4 -
6 75 50 + * 25 - 100 4 - +
6 75 50 + * 25 100 - 4 + -
6 75 50 + * 25 - 100 + 4 -
6 75 50 + * 25 100 4 - - -
6 75 50 + * 25 100 - - 4 -
75 6 50 25 - 100 + * 4 - +
75 6 50 25 100 - - * 4 - +
75 6 50 25 - 100 + * + 4 -
75 6 50 25 100 - - * + 4 -
50 75 + 6 * 25 - 100 4 - +
50 75 + 6 * 25 100 - 4 + -
50 75 + 6 * 25 - 100 + 4 -
50 75 + 6 * 25 100 4 - - -
50 75 + 6 * 25 100 - - 4 -
75 50 + 6 * 25 - 100 4 - +
75 50 + 6 * 25 100 - 4 + -
75 50 + 6 * 25 - 100 + 4 -
75 50 + 6 * 25 100 4 - - -
75 50 + 6 * 25 100 - - 4 -
50 6 25 + 75 100 - * 4 + -
50 6 25 + 75 100 - * - 4 -
50 25 6 75 - 100 + * 4 - +
50 25 6 75 100 - - * 4 - +
50 25 6 75 - 100 + * + 4 -
50 25 6 + 75 100 - * 4 + -
50 25 6 75 100 - - * + 4 -
50 25 6 + 75 100 - * - 4 -
75 6 25 50 100 + - * 4 + -
75 6 25 50 - 100 - * 4 + -
75 6 25 50 100 + - * - 4 -
75 6 25 50 - 100 - * - 4 -
50 25 75 6 100 + - * 4 + -
50 25 75 6 - 100 - * 4 + -
50 25 75 6 100 + - * - 4 -
50 25 75 6 - 100 - * - 4 -
6 50 100 25 - + * 75 4 - +
6 50 100 + 25 - * 75 4 - +
6 50 100 25 - + * 75 + 4 -
6 50 100 + 25 - * 75 + 4 -
6 100 50 25 - + * 75 4 - +
6 100 50 + 25 - * 75 4 - +
6 100 50 25 - + * 75 + 4 -
6 100 50 + 25 - * 75 + 4 -
6 50 25 - 100 + * 75 4 - +
6 50 25 100 - - * 75 4 - +
6 50 25 - 100 + * 75 + 4 -
6 50 25 100 - - * 75 + 4 -
50 6 25 + 100 75 - * 4 - +
50 6 25 + 100 75 - * + 4 -
50 25 6 100 75 - + * 4 - +
50 25 6 100 + 75 - * 4 - +
50 25 6 + 100 75 - * 4 - +
50 25 6 100 75 - + * + 4 -
50 25 6 100 + 75 - * + 4 -
50 25 6 + 100 75 - * + 4 -
6 100 25 - 50 + * 75 4 - +
6 100 25 50 - - * 75 4 - +
6 100 25 - 50 + * 75 + 4 -
6 100 25 50 - - * 75 + 4 -
100 25 - 6 50 75 + * 4 - +
100 25 6 50 75 + * - 4 + -
100 25 - 6 50 75 + * + 4 -
100 25 6 50 75 + * 4 - - -
100 25 6 50 75 + * - - 4 -
50 100 25 - + 6 * 75 4 - +
50 100 + 25 - 6 * 75 4 - +
50 100 25 - + 6 * 75 + 4 -
50 100 + 25 - 6 * 75 + 4 -
100 50 25 - + 6 * 75 4 - +
100 50 + 25 - 6 * 75 4 - +
100 50 25 - + 6 * 75 + 4 -
100 50 + 25 - 6 * 75 + 4 -
50 25 100 6 75 - + * 4 - +
50 25 - 100 + 6 * 75 4 - +
50 25 100 6 + 75 - * 4 - +
50 25 100 - - 6 * 75 4 - +
50 25 100 6 75 - + * + 4 -
50 25 - 100 + 6 * 75 + 4 -
50 25 100 6 + 75 - * + 4 -
50 25 100 - - 6 * 75 + 4 -
100 25 - 50 + 6 * 75 4 - +
100 25 50 - - 6 * 75 4 - +
100 25 - 50 + 6 * 75 + 4 -
100 25 50 - - 6 * 75 + 4 -
6 75 - 100 + 25 * 50 4 - +
6 75 100 - - 25 * 50 4 - +
6 75 - 100 + 25 * 50 + 4 -
6 75 100 - - 25 * 50 + 4 -
75 6 100 25 - 50 + * 4 - +
75 6 100 25 50 - - * 4 - +
75 6 100 25 - 50 + * + 4 -
75 6 100 25 50 - - * + 4 -
6 100 75 - + 25 * 50 4 - +
6 100 + 75 - 25 * 50 4 - +
6 100 75 - + 25 * 50 + 4 -
6 100 + 75 - 25 * 50 + 4 -
100 6 75 - + 25 * 50 4 - +
100 6 + 75 - 25 * 50 4 - +
100 6 75 - + 25 * 50 + 4 -
100 6 + 75 - 25 * 50 + 4 -
100 75 - 6 25 + * 50 4 - +
100 75 - 6 + 25 * 50 4 - +
100 75 6 - - 25 * 50 4 - +
100 75 - 6 25 + * 50 + 4 -
100 75 - 6 + 25 * 50 + 4 -
100 75 6 - - 25 * 50 + 4 -
75 6 25 100 50 + - * 4 + -
75 6 25 100 - 50 - * 4 + -
75 6 25 100 50 + - * - 4 -
75 6 25 100 - 50 - * - 4 -
25 6 75 - 100 + * 50 4 - +
25 6 75 100 - - * 50 4 - +
25 6 75 - 100 + * 50 + 4 -
25 6 75 100 - - * 50 + 4 -
6 25 + 100 75 - * 50 4 - +
6 25 + 100 75 - * 50 + 4 -
25 6 100 75 - + * 50 4 - +
25 6 100 + 75 - * 50 4 - +
25 6 + 100 75 - * 50 4 - +
25 6 100 75 - + * 50 + 4 -
25 6 100 + 75 - * 50 + 4 -
25 6 + 100 75 - * 50 + 4 -
100 25 - 6 75 50 + * 4 - +
100 25 6 75 50 + * - 4 + -
100 25 - 6 75 50 + * + 4 -
100 25 6 75 50 + * 4 - - -
100 25 6 75 50 + * - - 4 -
25 100 6 75 - + * 50 4 - +
25 100 6 + 75 - * 50 4 - +
25 100 6 75 - + * 50 + 4 -
25 100 6 + 75 - * 50 + 4 -
100 75 - 25 6 + * 50 4 - +
100 75 - 25 6 + * 50 + 4 -
25 100 75 - 6 + * 50 4 - +
25 100 75 6 - - * 50 4 - +
25 100 75 - 6 + * 50 + 4 -
25 100 75 6 - - * 50 + 4 -
50 75 100 - 25 6 + * 4 + -
50 75 100 - 25 6 + * - 4 -
75 50 100 25 - + 6 * 4 - +
75 50 100 + 25 - 6 * 4 - +
75 50 100 25 - + 6 * + 4 -
75 50 100 + 25 - 6 * + 4 -
50 100 75 - 25 6 + * 4 - +
50 100 75 - 25 6 + * + 4 -
75 100 50 25 - + 6 * 4 - +
75 100 50 + 25 - 6 * 4 - +
75 100 50 25 - + 6 * + 4 -
75 100 50 + 25 - 6 * + 4 -
75 50 25 - 100 + 6 * 4 - +
75 50 25 100 - - 6 * 4 - +
75 50 25 - 100 + 6 * + 4 -
75 50 25 100 - - 6 * + 4 -
50 25 75 100 6 + - * 4 + -
50 25 75 100 - 6 - * 4 + -
50 25 75 100 6 + - * - 4 -
50 25 75 100 - 6 - * - 4 -
75 25 50 100 + - 6 * 4 + -
75 25 50 - 100 - 6 * 4 + -
75 25 50 100 + - 6 * - 4 -
75 25 50 - 100 - 6 * - 4 -
50 25 100 75 - 6 + * 4 - +
50 25 100 75 6 - - * 4 - +
50 25 100 75 - 6 + * + 4 -
50 25 100 75 6 - - * + 4 -
100 25 - 50 75 + 6 * 4 - +
100 25 50 75 + 6 * - 4 + -
100 25 - 50 75 + 6 * + 4 -
100 25 50 75 + 6 * 4 - - -
100 25 50 75 + 6 * - - 4 -
75 100 25 - 50 + 6 * 4 - +
75 100 25 50 - - 6 * 4 - +
75 100 25 - 50 + 6 * + 4 -
75 100 25 50 - - 6 * + 4 -
75 25 100 50 + - 6 * 4 + -
75 25 100 - 50 - 6 * 4 + -
75 25 100 50 + - 6 * - 4 -
75 25 100 - 50 - 6 * - 4 -
100 25 - 75 50 + 6 * 4 - +
100 25 75 50 + 6 * - 4 + -
100 25 - 75 50 + 6 * + 4 -
100 25 75 50 + 6 * 4 - - -
100 25 75 50 + 6 * - - 4 -
import operator
from itertools import permutations, product
import unittest
GOAL = 821
OPERATOR_MAP = {
"+": operator.add,
"-": operator.sub,
"*": operator.mul,
}
def find_number(available_numbers, goal):
def find_goal(stack, operations, string_repr, numbers):
assert len(stack) + len(numbers) > len(operations), \
"there are fewer numbers {} than binary operators {}".format(stack + numbers, operations)
if len(numbers) == 0 and len(operations) == 0 and len(stack) == 1:
if stack[0] == goal:
return [string_repr]
else:
return []
reduce_numbers = []
if len(numbers) > 0:
reduce_numbers = find_goal(stack + [numbers[-1]],
operations,
string_repr + str(numbers[-1]) + " ",
numbers[:-1])
reduce_operations = []
if len(stack) >= 2 and len(operations) >= 1:
num1 = stack[-2]
num2 = stack[-1]
op = operations[-1]
new_number = OPERATOR_MAP[op](num1, num2)
reduce_operations = find_goal(stack[:-2] + [new_number],
operations[:-1],
string_repr + op + " ",
numbers)
recursion_results = reduce_numbers + reduce_operations
return recursion_results
available_operations = OPERATOR_MAP.keys()
# We can only loop over an iterator once, so this needs to be a list
all_possible_operation_orders = list(product(available_operations,
repeat=len(available_numbers) - 1))
answers = []
for numbers in permutations(available_numbers):
for operations in all_possible_operation_orders:
answers += find_goal([], operations, "", numbers)
return answers
class TestFindNumber(unittest.TestCase):
def test_single(self):
self.assertEqual(["2"], find_number([2], 2))
self.assertEqual(["3"], find_number([3], 3))
self.assertEqual([], find_number([3], 4))
def test_double(self):
self.assertCountEqual(["11+", "11+"], find_number([1, 1], 2))
self.assertCountEqual(["02+", "20+", "20-"], find_number([0, 2], 2))
self.assertCountEqual(["12*", "21*"], find_number([1, 2], 2))
self.assertCountEqual([], find_number([3, 1], 5))
self.assertCountEqual([], find_number([1, 2], 4))
# def test_triple(self):
# self.assertCountEqual(["235++", "23+5+"], find_number([2, 3, 5], 10))
if __name__ == '__main__':
# unittest.main()
print("For 821")
answers = find_number([25, 100, 75, 50, 6, 4], 821)
for i, answer in enumerate(answers):
print("{:4}: {}".format(i, answer))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment