An efficient numerical algorithm is developed for computing stopping boundaries for group sequential clinical trials. Patients arrive in sequence, and are randomized to one of two treatments. The data are monitored at interim time points, with a fresh block of patients entering the study from one monitoring point to the next. The stopping boundaries are derived from the exact joint permutational distribution of the linear rank statistics observed across all the monitoring times. Specifically, the algorithm yields the exact boundary generating function, Pr(W1 < b1, W2 < b2, ..., Wi-1 < bi-1, Wi = wi), where Wj is the linear rank statistic at the jth interim time point. The distribution theory is based on assigning ranks after pooling all the patients who have entered the study, and then permuting the patients to the two treatments independently within each block of newly arrived patients. The methods are applicable for an arbitrary number of monitoring times, which need not be specified at the start of the study. The data may be continuous or categorical, and censored or uncensored. The randomization rule for treatment allocation can be adaptive. The algorithm is especially useful during the early stages of a clinical trial, when very little data have been gathered, and stopping boundaries are based on the extreme tails of the relevant boundary generating function. In that case the corresponding large-sample theory is not very reliable. To illustrate the techniques we present a group sequential analysis of a recently completed study by the Eastern Cooperative Oncology Group.