Другой вариант перестановки без зависимостей и понимания списка:
permutations = ((x,y) for x in list2 for y in list2)
[ x+e[1:-1]+y for x, y in permutations for e in list1 ]
#=> ['ACCA', 'ACGA', 'AGCA', 'AGAA', 'ACCC', 'ACGC', 'AGCC', 'AGAC', 'ACCG', 'ACGG', 'AGCG', 'AGAG', 'ACCT', 'ACGT', 'AGCT', 'AGAT', 'CCCA', 'CCGA', 'CGCA', 'CGAA', 'CCCC', 'CCGC', 'CGCC', 'CGAC', 'CCCG', 'CCGG', 'CGCG', 'CGAG', 'CCCT', 'CCGT', 'CGCT', 'CGAT', 'GCCA', 'GCGA', 'GGCA', 'GGAA', 'GCCC', 'GCGC', 'GGCC', 'GGAC', 'GCCG', 'GCGG', 'GGCG', 'GGAG', 'GCCT', 'GCGT', 'GGCT', 'GGAT', 'TCCA', 'TCGA', 'TGCA', 'TGAA', 'TCCC', 'TCGC', 'TGCC', 'TGAC', 'TCCG', 'TCGG', 'TGCG', 'TGAG', 'TCCT', 'TCGT', 'TGCT', 'TGAT']