Поскольку это звучит подозрительно, как домашняя работа, обучение здесь будет постепенным. Сначала попробуйте грубую силу. Вот алгоритм (ну, действительно, Python), который сделает это:
for n1 in range(2,10):
for n2 in range(2,10):
if n2 != n1:
for n3 in range(2,10):
if n3 != n2 and n3 != n1:
for n4 in range(2,10):
if n4 != n3 and n4 != n2 and n4 != n1:
for n5 in range(2,10):
if n5 != n4 and n5 != n3 and n5 != n2 and n5 != n1:
for n6 in range(2,10):
if n6 != n5 and n6 != n4 and n6 != n3 and n6 != n2 and n6 != n1:
for n7 in range(2,10):
if n7 != n6 and n7 != n5 and n7 != n4 and n7 != n3 and n7 != n2 and n7 != n1:
print "%d%d%d%d%d%d%d"%(n1,n2,n3,n4,n5,n6,n7)
Это в основном семь вложенных циклов, по одному на каждую позицию цифры, с проверками на отсутствие дубликатов в любой точке. Обратите внимание, что это не решение, которое будет хорошо масштабироваться для лотов позиций цифр, но оно хорошо работает для семи из них. Если вам нужно гораздо больше, лучше использовать менее грубое решение.