Finds all valid words by arranging 3 cubes
It's just as easy to iterate over the characters in a string as over the elements in a list, so the initialization of the cubes can be simplified:

a, b, c = 'AJN BKO CLP'.split()

combinationsList can be computed using itertools.product:

combinationsList = list(itertools.product(a, b, c))

Instead of using a regular expression:

if re.match('.{3}$', word) != None:


just check the length:

if len(word) == 3:


(But once you have an efficient membership test, as discussed below, you can skip this check.)
The code checks for membership in a list by counting the number of occurrences:

if dictionList.count(word) &gt; 0:


but it would be simpler to use the in operator:

if word in dictionList:

Testing for membership in a list is expensive — Python has to compare word with every member of dictionList in turn. It would be more efficient to use a set, which has a fast membership test.
The code in the post constructs a collection of dictionary words and checks each candidate word to see if it's in the dictionary. But because there are only 162 candidate words, and hundreds of thousands of entries in the dictionary, it would be more memory-efficient to do the operation the other way round — that is, to check each dictionary word to see if it's a candidate. That way, you wouldn't have to build a collection of dictionary words, you could just iterate over them one by one.


Revised code:

from itertools import permutations, product
cubes = 'AJN BKO CLP'.split()
candidate_words = {
    ''.join(permutation)
    for letters in product(*cubes)
    for permutation in permutations(letters)
}
valid_words = set()
with open('/usr/share/dict/words') as dictionary:
    for line in dictionary:
        word = line.strip().upper()
        if word in candidate_words:
            valid_words.add(word)
print(valid_words)