permute requirement