A related task to this is to find a subset of column vectors that are maximally linearly independent. Linear independence isn't exactly the same thing as asking for a large determinant, but if we can use one as a proxy for the other then this heuristic may help you.
Rank revealing QR factorization (RRQR) is a good way to achieve this related task. One of the outputs of rank-revealing QR is a permutation of the input vectors that results in an approximate maximal linear independence. In Python for example I can do the following:
import numpy as np
import scipy.linalg as la
n=10 # Size of column vectors
nvectors=500 #Number of vectors to generate
np.random.seed(3244) #Seed RNG to make result reproducible
A=np.random.rand(n,nvectors)
(Q,R,P)=la.qr(A,pivoting=True) #pivoting=True switches to RRQR algorithm
k=5 #Choose k vectors out of total
B=A[:,P[0:k]] #B is vectors from the RRQR ordering
C=A[:,0:k] #C is vectors in original ordering
print("Permuted: {}, Un-Permuted: {}".format(np.linalg.det(B.T@B),np.linalg.det(C.T@C)))
#output: Permuted: 60.60606973650909, Un-Permuted: 1.005883253383066
Edit: On second thought this may be much closer to what you explicitly asked for than I realized, and not just a heuristic. You can use the RRQR factorization itself to find the determinant of this submatrix (product of diagonal entries of its upper triangular factor), and since RRQR permutes to make the diagonal entries nonincreasing this suggests we actually get close to the largest possible determinant by using the permutation.
This may not strictly be the case though because the permutation generated by RRQR is approximate, it isn't necessarily the best possible. In other words: there could be other RRQR factorizations which do a little better.