A[1][1] = 0
subsets = list(range(1, 2 ** n))
for subset in sorted(subsets, key=lambda x: bin(x).count('1')):
    if not subset & 1:
        continue
for j in range(2, n + 1):
    if not 1 << j - 1 & subset:
        continue
for k in range(1, n + 1):
    if k == j or not 1 << k - 1 & subset:
        continue
A[subset][j] = min(A[subset][j], A[subset ^ 1 << j - 1][k] + get_dist(j, k))
Как реализовать алгоритмы динамического программирования для TSP в Python?