script to check zero crossings to check if microphones phases are aligned
A better approach for use in the presence of noise and distortion is to use the Wiener-Hopf equations which will provide a least-mean-square solution of the effective "channel" between the microphones. The group delay can be determined using scipy.signal.group_delay.

Further details on this approach specific to microphone captures including Matlab/Octave source code (that can be easily ported to Python Scipy) is on this post:

Compensating Loudspeaker frequency response in an audio signal

In that post, the right channel was equalized to the left channel by passing it through the derived compensation for the effective channel between the microphones, but the post details how you can determine the channel itself rather than the compensation. 

You would want to do this with sounding signals that fully occupy the usable spectrum of interest (chirps or white noise generators would be good choices) since the channel can only be determined accurately at the frequencies where signal energy exists. You can do this using one received channel compared to the other as I have done in the link when you don't have a copy of the source, or you can do each left and right channel separately compared to the source if you have the exact waveform that was used to create the source sound.

By using this to derive the channel, and then using the group delay on the channel frequency response, you will see the delay for each frequency in your signal (if there is significant variation, this is group delay variation which is a source of distortion (so you can also use this technique to equalize your room when you do have the source signal). To match the distance between the microphones, you would compare the average of the group delay over frequency, and you can weight this average on frequency ranges that are more important to you.