4 word combinations from a short list of words
#2
you could use someting like this (a perl script) and change the words if you need:
Code:
#!/usr/bin/env perl

use strict;
use warnings;

my @words = (
  'fruit',
  'apple',
  'pear',
  'banana',
  'turkey',
  'tree',
  'photo',
  'plant'
);

my $count = scalar (@words);

for (my $i = 0; $i < $count; $i++)
{
  for (my $j = 0; $j < $count; $j++)
  {
    next if ($j == $i);

    for (my $k = 0; $k < $count; $k++)
    {
      next if ($k == $i);
      next if ($k == $j);

      for (my $l = 0; $l < $count; $l++)
      {
        next if ($l == $i);
        next if ($l == $j);
        next if ($l == $k);

        # 0 plural

        print $words[$i]       . $words[$j]       . $words[$k]       . $words[$l]       . "\n";

        # 1 plural

        print $words[$i] . "s" . $words[$j]       . $words[$k]       . $words[$l]       . "\n";
        print $words[$i]       . $words[$j] . "s" . $words[$k]       . $words[$l]       . "\n";
        print $words[$i]       . $words[$j]       . $words[$k] . "s" . $words[$l]       . "\n";
        print $words[$i]       . $words[$j]       . $words[$k]       . $words[$l] . "s" . "\n";

        # 2 plurals (1st word)

        print $words[$i] . "s" . $words[$j] . "s" . $words[$k]       . $words[$l]       . "\n";
        print $words[$i] . "s" . $words[$j]       . $words[$k] . "s" . $words[$l]       . "\n";
        print $words[$i] . "s" . $words[$j]       . $words[$k]       . $words[$l] . "s" . "\n";

        # 2 plurals (2nd word)

        print $words[$i]       . $words[$j] . "s" . $words[$k] . "s" . $words[$l]       . "\n";
        print $words[$i]       . $words[$j] . "s" . $words[$k]       . $words[$l] . "s" . "\n";

        # 2 plurals (3rd word)

        print $words[$i]       . $words[$j]       . $words[$k] . "s" . $words[$l] . "s" . "\n";

        # 3 plurals (1st word)

        print $words[$i] . "s" . $words[$j] . "s" . $words[$k] . "s" . $words[$l]       . "\n";
        print $words[$i] . "s" . $words[$j] . "s" . $words[$k]       . $words[$l] . "s" . "\n";
        print $words[$i] . "s" . $words[$j]       . $words[$k] . "s" . $words[$l] . "s" . "\n";

        # 3 plurals (2nd word)

        print $words[$i]       . $words[$j] . "s" . $words[$k] . "s" . $words[$l] . "s" . "\n";

        # 4 plurals

        print $words[$i] . "s" . $words[$j] . "s" . $words[$k] . "s" . $words[$l] . "s" . "\n";
      }
    }
  }
}

The only "probem" is that it will increase very fast the more words there are in the array/dict.


Messages In This Thread
RE: 4 word combinations from a short list of words - by philsmd - 12-23-2017, 02:22 PM