Permuted block randomization may be done using PROC PLAN.
proc plan seed=62146;
factors site=3 ordered block=3 ordered trt=4;
output out=data3 trt nvals=(0 0 1 1);
run;
data data3;
set data3;
by site;
retain subj;
if first.site then subj=0;
else subj=subj+1;
subjid = site*100 + subj;
format trt trtFmt. site siteFmt.;
run;
proc print data=data3 split='*';
pageby site;
by site;
id subjid;
var block trt;
label subjid='Subject*Number*-------'
trt='Treatment*Assignment*----------';
run;