Bash Perm Check
perm_check() {
    local -n _a="$1"
    local -a _sorted=($(printf '%s\n' "${_a[@]}" | sort -n))
    local _c=${#_sorted[@]}
    local _k
    for ((_k = 0; _k < _c - 1; _k++)); do
        if (( _sorted[_k] != _k + 1 )); then
            echo 0
            return
        fi
    done
    echo 1
}

This validates that every value from 1 to N appears exactly once.